メタプログラミングRuby読書会@尼崎 2回目
メタプログラミングRuby読書会でした。読書会としては2章分進んだんですが、僕の進行ぐらいは1章分でした。またKindleで読み進めようかな。だんだん「メタプログラミングって意外とたいそうなものじゃなさそうだ」という感覚になってきました。
挙動を選ぶまで、メソッドを呼ばせないとか。
class MyClass def define_method_to_say_hello def say puts 'Hello, world!' end end def define_method_to_say_bonjour def say puts 'Bonjour, le monde!' end end end a = MyClass.new a.say #=> Error a.define_method_to_say_hello a.say #=> Hello, world!
なんとなくmodulo 5にするとか。
class Fixnum alias :plus :+ alias :minus :- def +(x) self.plus(x) % 5 end def -(x) self.minus(x) % 5 end end 1+2 #=> 3 3+3 #=> 1
きっと、慣れるといろんなことが自然に見えてくるんだろうな。