Module: Replaceability
- Included in:
- Treetop::Runtime::SyntaxNode
- Defined in:
- lib/vsql_node_extensions.rb
Instance Method Summary collapse
- #adjust_intervals!(idx, delta) ⇒ Object
- #gsub!(pattern, replacement) ⇒ Object
- #index_of(str) ⇒ Object
Instance Method Details
#adjust_intervals!(idx, delta) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/vsql_node_extensions.rb', line 23 def adjust_intervals!(idx, delta) case when @interval.include?(idx) @interval = (@interval.first)...[@interval.first, @interval.last + delta].max when @interval.first > idx @interval = (@interval.first + delta)...(@interval.last + delta) end elements && elements.each { |e| e.adjust_intervals!(idx, delta) } true end |
#gsub!(pattern, replacement) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/vsql_node_extensions.rb', line 34 def gsub!(pattern, replacement) ScanHelpers.gsub_replacements(text_value, pattern, replacement).reverse.each do |(range, delta, rep_str)| end_idx = (@interval.min + range.max) @input[(@interval.min + range.min)..end_idx] = rep_str root.adjust_intervals!(end_idx, delta) end end |
#index_of(str) ⇒ Object
19 20 21 |
# File 'lib/vsql_node_extensions.rb', line 19 def index_of(str) e.text_value.index(str) + e.interval.first end |