Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

既存クラスへエイリアスを貼ったり、新規メソッドを追加する

既存のクラスにエイリアスを貼ったり、メソッドを追加したりする方法です。
今回の例では

ary = (1..10).to_a
#=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

という配列を用意し、carとcdrというメソッドを作って操作してみます。

エイリアスを貼る

carはfirstメソッドそのまんまなので、エイリアスを貼ります

class Array
  alias car first
end
=> nil

> ary.car
=> 1

メソッドを追加する

cdrは先頭より後ろのリストを返します。
rubyではdrop(1)にて実現できます。
引数がついている場合、メソッドのエイリアスは貼れないみたいなので*1新規メソッドにて対処します

class Array
  def cdr
    drop(1)
  end
end
=> nil

> ary.cdr
#=> [2, 3, 4, 5, 6, 7, 8, 9, 10]

*1:要調査