Class: Mutant::Expression Private
- Inherits:
-
Object
- Object
- Mutant::Expression
- Includes:
- AbstractType
- Defined in:
- lib/mutant/expression.rb,
lib/mutant/expression/method.rb,
lib/mutant/expression/parser.rb,
lib/mutant/expression/methods.rb,
lib/mutant/expression/namespace.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Abstract base class for match expression
Defined Under Namespace
Classes: Method, Methods, Namespace, Parser
Constant Summary collapse
- SCOPE_NAME_PATTERN =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
/(?<scope_name>#{fragment}(?:#{SCOPE_OPERATOR}#{fragment})*)/.freeze
- SCOPE_SYMBOL_PATTERN =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
'(?<scope_symbol>[.#])'
Class Method Summary collapse
- .new ⇒ Object private
-
.try_parse(input) ⇒ Expression?
private
Try to parse input into expression of receiver class.
Instance Method Summary collapse
-
#match_length(other) ⇒ Integer
private
Match length with other expression.
-
#matcher ⇒ Matcher
private
Syntax of expression.
-
#prefix?(other) ⇒ Boolean
private
Test if expression is prefix.
-
#syntax ⇒ String
private
Syntax of expression.
Class Method Details
.new ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
15 16 17 |
# File 'lib/mutant/expression.rb', line 15 def self.new(*) super.freeze end |
.try_parse(input) ⇒ Expression?
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Try to parse input into expression of receiver class
60 61 62 63 |
# File 'lib/mutant/expression.rb', line 60 def self.try_parse(input) match = self::REGEXP.match(input) from_match(match) if match end |
Instance Method Details
#match_length(other) ⇒ Integer
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Match length with other expression
34 35 36 37 38 39 40 |
# File 'lib/mutant/expression.rb', line 34 def match_length(other) if syntax.eql?(other.syntax) syntax.length else 0 end end |
#matcher ⇒ Matcher
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Syntax of expression
22 |
# File 'lib/mutant/expression.rb', line 22 abstract_method :matcher |
#prefix?(other) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if expression is prefix
47 48 49 |
# File 'lib/mutant/expression.rb', line 47 def prefix?(other) !match_length(other).zero? end |
#syntax ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Syntax of expression
27 |
# File 'lib/mutant/expression.rb', line 27 abstract_method :syntax |