Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Object | extend

概要

Object#extend(*modules) -> self

詳細

引数で指定したモジュールのインスタンスメソッドを self の特異 メソッドとして追加。

サンプルコード
%i(Hige Hage).each do |m|
  eval "
module #{m}
  def #{m.downcase}
    '#{m.downcase}'
  end
end
  "
end

class Hoge
  def hoge
    'hoge'
  end
end

hoge = Hoge.new
hoge.extend Hige, Hage

p hoge.hige
p hoge.hage

出力

"hige"
"hage"
[Hoge, Object, Kernel, BasicObject]