Class: Wood::TreePattern::ReplacementBuilder
- Inherits:
-
Object
- Object
- Wood::TreePattern::ReplacementBuilder
- Defined in:
- lib/wood/tree_pattern/replacement_builder.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#initialize(pattern_builder, &block) ⇒ ReplacementBuilder
constructor
A new instance of ReplacementBuilder.
- #replacement_for(node) ⇒ Object
- #within(node, &block) ⇒ Object
Constructor Details
#initialize(pattern_builder, &block) ⇒ ReplacementBuilder
Returns a new instance of ReplacementBuilder.
3 4 5 6 |
# File 'lib/wood/tree_pattern/replacement_builder.rb', line 3 def initialize(pattern_builder, &block) @pattern_builder = pattern_builder @block = block end |
Instance Method Details
#replacement_for(node) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/wood/tree_pattern/replacement_builder.rb', line 8 def replacement_for(node) @pattern_builder.vars.each do |v| singleton_class.__send__(:define_method, v.name) { v.value } end @node = node instance_eval(&@block) end |
#within(node, &block) ⇒ Object
16 17 18 19 |
# File 'lib/wood/tree_pattern/replacement_builder.rb', line 16 def within(node, &block) node.__rewriter_class__.instance_eval &block node.rewrite! end |