class Cannonbol::Fence

Public Instance Methods

__match?(needle, on_backtrack = nil) click to toggle source
# File lib/cannonbol/cannonbol.rb, line 527
def __match?(needle, on_backtrack = nil)
  if on_backtrack == :fail_match
    needle.match_failed = true
    return nil
  elsif on_backtrack == :return_nil
    return nil
  elsif @block
    pattern = @block.call
  elsif @name
    pattern = needle.captures[@name] || ""
  elsif @pattern
    pattern = @pattern
  else
    return [:fail_match]
  end
  return [:return_nil] if pattern._match?(needle)
end