Module: PatternMatching::DSL_OUTSIDE

Included in:
PatternMatching, PatternMatching
Defined in:
lib/patternmatching/pattern.rb

Overview

Domain Specific Language style methods for outside

Instance Method Summary collapse

Instance Method Details

#build(&block) ⇒ Object

Build structured data

Usage

build 100), foo(buzz, “abc”)]



73
74
75
# File 'lib/patternmatching/pattern.rb', line 73

def build(&block)
  NodeBuilder.new.instance_eval(&block)
end

#make(target, &block) ⇒ Object

Do pattern matching

Usage

make TARGET do

seems as {PATTERN_1} do ACTION_1 end
seems as {PATTERN_2} do ACTION_2 end
seems something do ACTION_DEFAULT end

end



84
85
86
87
88
89
90
91
92
93
# File 'lib/patternmatching/pattern.rb', line 84

def make(target, &block)
  patterns = []
  PatternFragments.new(patterns).instance_eval(&block)
  result = MatchExec.exec_as(target, patterns, self)
  if result
    result[0].instance_eval(&result[1])
  else
    nil
  end
end