Module: Berater::DSL

Extended by:
DSL
Included in:
DSL
Defined in:
lib/berater/dsl.rb

Instance Method Summary collapse

Instance Method Details

#eval(&block) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/berater/dsl.rb', line 24

def eval &block
  @keywords ||= Class.new do
    # create a class where DSL keywords are methods
    KEYWORDS.each do |keyword|
      define_singleton_method(keyword) { keyword }
    end
  end

  install
  @keywords.class_eval &block
ensure
  uninstall
end