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
-
#build(&block) ⇒ Object
Build structured data === Usage build 100), foo(buzz, “abc”)].
-
#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.
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 |