在Ruby中创建DSL时,是否可以创建`def`的替代版本?

时间:2016-01-29 11:15:53

标签: ruby metaprogramming dsl

可以直接调用define_method,也可以在接受块的方法调用中调用def。但是是否可以创建一个新的方法或关键字来对代码执行操作,然后将其声明为方法,但语法与内置var ele = entry[i].getElementsByTagName("url"); if (ele && ele[0].childNodes[0]) { var foo = 'baar' } else { //code } 相同?

1 个答案:

答案 0 :(得分:3)

没有。您可以定义方法,但不能定义关键字。无论您在Module类上定义什么方法,都不能在没有do关键字的情况下将方法正文传递给它,与def不同。