module Pannier::DSL

Public Instance Methods

build(*args, &block) click to toggle source
# File lib/pannier/dsl.rb, line 7
def build(*args, &block)
  base = self.new(*args)
  delegator_klass = self.const_get('DSLDelegator')
  delegator = delegator_klass.new(base)
  delegator.instance_eval(&block)
  base
end
dsl(&block) click to toggle source
# File lib/pannier/dsl.rb, line 15
def dsl(&block)
  begin
    delegator_klass = self.const_get('DSLDelegator')
    delegator_klass.class_eval(&block)
  rescue NameError
    delegator_klass = Class.new(SimpleDelegator, &block)
    self.const_set('DSLDelegator', delegator_klass)
  end
end