class Wongi::Engine::DSL::Builder

Public Class Methods

new() click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 4
def initialize
  @current_section = nil
  @current_clause = nil
  @clauses = []
end

Public Instance Methods

accept(klass) click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 37
def accept klass
  raise DefinitionError, "Cannot create an acceptor without a clause" if @current_clause.nil?
  @clauses << { section: @current_section, clause: @current_clause, accept: klass }
  @current_clause = nil
end
action(klass = nil, &block) click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 25
def action klass = nil, &block
  raise DefinitionError, "Cannot create an action without a clause" if @current_clause.nil?
  @clauses << { section: @current_section, clause: @current_clause, action: klass || block }
  @current_clause = nil
end
body(klass = nil, &block) click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 31
def body klass = nil, &block
  raise DefinitionError, "Cannot create a body without a clause" if @current_clause.nil?
  @clauses << { section: @current_section, clause: @current_clause, body: klass || block }
  @current_clause = nil
end
build(&definition) click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 10
def build &definition
  instance_eval &definition
  @clauses.each do |c|
    Generated.create_dsl_method c
  end
end
clause(*c) click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 21
def clause *c
  @current_clause = c
end
section(s) click to toggle source
# File lib/wongi-engine/dsl/builder.rb, line 17
def section s
  @current_section = s
end