Class: Wongi::Engine::DSL::AnyRule

Inherits:
Object
  • Object
show all
Defined in:
lib/wongi-engine/dsl/any_rule.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ AnyRule

Returns a new instance of AnyRule.



6
7
8
9
# File 'lib/wongi-engine/dsl/any_rule.rb', line 6

def initialize(&block)
  @variants = []
  instance_eval(&block) if block
end

Instance Attribute Details

#variantsObject (readonly)

Returns the value of attribute variants.



4
5
6
# File 'lib/wongi-engine/dsl/any_rule.rb', line 4

def variants
  @variants
end

Instance Method Details

#compile(context) ⇒ Object



17
18
19
# File 'lib/wongi-engine/dsl/any_rule.rb', line 17

def compile(context)
  context.tap { |c| c.or_node(variants) }
end

#option(&block) ⇒ Object



11
12
13
14
15
# File 'lib/wongi-engine/dsl/any_rule.rb', line 11

def option(&block)
  var = VariantRule.new
  var.forall(&block)
  variants << var
end