Implement Recipe{.,#}compose_macro
This commit is contained in:
@@ -5,6 +5,10 @@ module Producer
|
||||
def define_macro(name, block)
|
||||
define_method(name) { |*args| task name, *args, &block }
|
||||
end
|
||||
|
||||
def compose_macro(name, meth, *base_args)
|
||||
define_method(name) { |*args| send meth, *(base_args + args) }
|
||||
end
|
||||
end
|
||||
|
||||
attr_reader :env, :tasks
|
||||
@@ -27,11 +31,17 @@ module Producer
|
||||
end
|
||||
|
||||
def macro(name, &block)
|
||||
define_singleton_method(name) do |*args|
|
||||
define_singleton_method name do |*args|
|
||||
task "#{name}", *args, &block
|
||||
end
|
||||
end
|
||||
|
||||
def compose_macro(name, meth, *base_args)
|
||||
define_singleton_method name do |*args|
|
||||
send meth, *(base_args + args)
|
||||
end
|
||||
end
|
||||
|
||||
def test_macro(name, &block)
|
||||
Condition.define_test(name, block)
|
||||
end
|
||||
|
Reference in New Issue
Block a user