Top Level Namespace

Defined Under Namespace

Modules: Wongi

Instance Method Summary collapse

Instance Method Details

#dsl(&definition) ⇒ Object



22
23
24
# File 'lib/wongi-engine/dsl.rb', line 22

def dsl &definition
  Wongi::Engine::DSLBuilder.new.build &definition
end

#query(name, &definition) ⇒ Object



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

def query name, &definition
  q = Wongi::Engine::Query.new name
  q.instance_eval &definition
  q
end

#rule(name, &definition) ⇒ Object



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

def rule name, &definition
  r = Wongi::Engine::ProductionRule.new name
  r.instance_eval &definition
  r
end

#ruleset(name = nil, &definition) ⇒ Object



1
2
3
4
5
6
7
8
# File 'lib/wongi-engine/dsl.rb', line 1

def ruleset name = nil, &definition
  rs = Wongi::Engine::Ruleset.new
  if ! name.nil?
    rs.name name
  end
  rs.instance_eval &definition if block_given?
  rs
end