概要
流れるようなインターフェースをメタプログラミング
詳細
まつもとゆきひろさんの「コードの世界」でattr_accssorのソースコードを読んで
実装したくてしょうがなくなったので夜更かしして実装。
流れるようなインターフェースをメタプログラミングします。
※参考としてJavaの流れるようなインターフェース生成ツール
http://d.hatena.ne.jp/tbpg/20121006/1349539794
サンプルコード
# encoding: Windows-31J class Module def fluent_accessor(*symbols) symbols.each do |symbol| class_eval %{ def get#{symbol.capitalize} @#{symbol} end def #{symbol}(value) @#{symbol}=value self end } end end end class FluentDataClass fluent_accessor :hoge,:hige,:hage end fluent_data_class = FluentDataClass.new.hoge("hogeの値").hige("higeの値").hage("hageの値") symbols = [:hoge,:hige,:hage] symbols.each {|symbol|puts fluent_data_class.method("get#{symbol.capitalize}").call}