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