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