soukouki’s diary

なんとなく思ったこととかを書いてたりする。

メタプログラミングRubyを読んで(2)

前回

読んでたら疲れたので第4章までで知ったこととか。


ObjectはKernelモジュールをincludeしている
なので

def aaa
    "call aaa(#{self})"
end

aaa
#=> "call aaa(main)"

[].aaa
#=> "call aaa([])"

/aaa/.aaa
#=> "call aaa((?-mix:aaa))"

余り使うことはないだろうな。

Class.new
Module.new
Module.define_method

の3つは変数などのスコープを無視(フラットスコープ)することができる。
詳しくはこちら biboroku.megaya.net


www.oreilly.co.jp

soukouki.hatenablog.jp