class Cany::Recipe::DSL
This superclass helps recipes to create easily an own mini DSL
to let the user configure the recipe with it.
Public Class Methods
delegate(*methods)
click to toggle source
This is a simple delegate helper. It can be used to pass option directly to recipe instance. @param [Symbol] param1 Multiple symbol names
# File lib/cany/recipe.rb, line 276 def self.delegate(*methods) methods.each do |method| module_eval(<<-EOS, __FILE__, __LINE__) def #{method}(*args, &block) @recipe.send :'#{method}=', *args, &block end EOS end end
new(recipe)
click to toggle source
# File lib/cany/recipe.rb, line 265 def initialize(recipe) @recipe = recipe end
Public Instance Methods
after(hook_name, &block)
click to toggle source
# File lib/cany/recipe.rb, line 290 def after(hook_name, &block) @recipe.hook(hook_name)[:after] << block end
around(hook_name, &block)
click to toggle source
# File lib/cany/recipe.rb, line 294 def around(hook_name, &block) @recipe.hook(hook_name)[:around] << block end
before(hook_name, &block)
click to toggle source
# File lib/cany/recipe.rb, line 286 def before(hook_name, &block) @recipe.hook(hook_name)[:before] << block end
exec(&block)
click to toggle source
Evaluate a given block inside the dsl.
# File lib/cany/recipe.rb, line 270 def exec(&block) instance_eval(&block) end