Ruby Module Mixin メタプログラミング スペルを使用してメソッド名(:key) を定義するとします (独自の小さな DSL を作成します)。
module MyDsl
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def mymethod(name)
# name("key")
method_name = "#{name}".to_sym
define_method(method_name) do |arg|
# ...
end
end
end
end
メソッドを定義するにはどうすればよいですか
name[:key]
name[:key]=val
name[:key]+=3
name[:key]++
等々
Ruby の define_method(method_name) で [] 配列 / ハッシュ アクセスを指定し、値の設定、値のインクリメントなどを行う構文は何ですか?