class Producer::Core::Recipe
Attributes
env[R]
tasks[R]
Public Class Methods
compose_macro(name, macro, *base_args)
click to toggle source
# File lib/producer/core/recipe.rb, line 13 def compose_macro name, macro, *base_args [self, Task].each do |klass| klass.class_eval do define_method(name) { |*args| send macro, *(base_args + args) } end end end
define_macro(name, block)
click to toggle source
# File lib/producer/core/recipe.rb, line 5 def define_macro name, block [self, Task].each do |klass| klass.class_eval do define_method(name) { |*args| task name, *args, &block } end end end
new(env)
click to toggle source
# File lib/producer/core/recipe.rb, line 27 def initialize env @env = env @tasks = [] end
Public Instance Methods
compose_macro(name, macro, *base_args)
click to toggle source
# File lib/producer/core/recipe.rb, line 48 def compose_macro name, macro, *base_args self.class.class_eval { compose_macro name, macro, *base_args } end
macro(name, &block)
click to toggle source
# File lib/producer/core/recipe.rb, line 44 def macro name, &block self.class.class_eval { define_macro name, block } end
source(filepath)
click to toggle source
# File lib/producer/core/recipe.rb, line 32 def source filepath instance_eval File.read("./#{filepath}.rb"), "#{filepath}.rb" end
target(hostname = nil)
click to toggle source
# File lib/producer/core/recipe.rb, line 36 def target hostname = nil if hostname then env.target ||= hostname else env.target end end
task(name, *args, &block)
click to toggle source
# File lib/producer/core/recipe.rb, line 40 def task name, *args, &block Task.evaluate(env, name, *args, &block).tap { |o| @tasks << o } end
test_macro(name, &block)
click to toggle source
# File lib/producer/core/recipe.rb, line 52 def test_macro name, &block Condition.define_test(name, block) end