Class: Fast::FindWithCapture
Overview
Allow use previous captures while searching in the AST. Use ‘\1` to point the match to the first captured element or sequential numbers considering the order of the captures.
Instance Attribute Summary collapse
-
#previous_captures ⇒ Object
writeonly
Sets the attribute previous_captures.
Attributes inherited from Find
Instance Method Summary collapse
-
#initialize(token) ⇒ FindWithCapture
constructor
A new instance of FindWithCapture.
- #match?(node) ⇒ Boolean
- #to_s ⇒ Object
Methods inherited from Find
#==, #compare_symbol_or_head, #debug, #debug_match_recursive, #match_recursive
Constructor Details
#initialize(token) ⇒ FindWithCapture
Returns a new instance of FindWithCapture.
459 460 461 462 463 464 |
# File 'lib/fast.rb', line 459 def initialize(token) token = token.token if token.respond_to?(:token) raise 'You must use captures!' unless token @capture_index = token.to_i end |
Instance Attribute Details
#previous_captures=(value) ⇒ Object (writeonly)
Sets the attribute previous_captures
457 458 459 |
# File 'lib/fast.rb', line 457 def previous_captures=(value) @previous_captures = value end |
Instance Method Details
#match?(node) ⇒ Boolean
466 467 468 |
# File 'lib/fast.rb', line 466 def match?(node) node == @previous_captures[@capture_index - 1] end |
#to_s ⇒ Object
470 471 472 |
# File 'lib/fast.rb', line 470 def to_s "fc[\\#{@capture_index}]" end |