Class: Regexp::Expression::Quantifier
- Inherits:
-
Object
- Object
- Regexp::Expression::Quantifier
- Includes:
- Shared
- Defined in:
- lib/regexp_parser/expression/quantifier.rb
Overview
TODO: in v3.0.0, maybe put Shared back into Base, and inherit from Base and call super in #initialize, but raise in #quantifier= and #quantify, or introduce an Expression::Quantifiable intermediate class. Or actually allow chaining as a more concise but tricky solution than PR#69.
Constant Summary collapse
- MODES =
%i[greedy possessive reluctant]
Instance Attribute Summary collapse
-
#max ⇒ Object
readonly
Returns the value of attribute max.
-
#min ⇒ Object
readonly
Returns the value of attribute min.
-
#mode ⇒ Object
readonly
Returns the value of attribute mode.
Instance Method Summary collapse
-
#initialize(*args) ⇒ Quantifier
constructor
A new instance of Quantifier.
- #to_h ⇒ Object
Methods included from Shared
#==, #base_length, #coded_offset, #full_length, included, #initialize_copy, #is?, #nesting_level=, #offset, #one_of?, #parts, #quantified?, #quantifier_affix, #starts_at, #terminal?, #to_s, #token_class, #type?
Constructor Details
#initialize(*args) ⇒ Quantifier
Returns a new instance of Quantifier.
13 14 15 16 17 18 19 20 21 |
# File 'lib/regexp_parser/expression/quantifier.rb', line 13 def initialize(*args) deprecated_old_init(*args) and return if args.count == 4 || args.count == 5 (*args) @mode = (token.to_s[/greedy|reluctant|possessive/] || :greedy).to_sym @min, @max = minmax # TODO: remove in v3.0.0, stop removing parts of #token (?) self.token = token.to_s.sub(/_(greedy|possessive|reluctant)/, '').to_sym end |
Instance Attribute Details
#max ⇒ Object (readonly)
Returns the value of attribute max.
11 12 13 |
# File 'lib/regexp_parser/expression/quantifier.rb', line 11 def max @max end |
#min ⇒ Object (readonly)
Returns the value of attribute min.
11 12 13 |
# File 'lib/regexp_parser/expression/quantifier.rb', line 11 def min @min end |
#mode ⇒ Object (readonly)
Returns the value of attribute mode.
11 12 13 |
# File 'lib/regexp_parser/expression/quantifier.rb', line 11 def mode @mode end |
Instance Method Details
#to_h ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/regexp_parser/expression/quantifier.rb', line 23 def to_h { token: token, text: text, mode: mode, min: min, max: max, } end |