假设我想使用 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) 允许指定 [] 数组/散列访问并设置值、递增值等的语法是什么?