Class: JsRegex::Converter::Context
- Inherits:
-
Object
- Object
- JsRegex::Converter::Context
- Defined in:
- lib/js_regex/converter/context.rb
Overview
Passed among Converters to globalize basic status data.
The Converters themselves are stateless.
Instance Attribute Summary collapse
-
#capturing_group_count ⇒ Object
readonly
Returns the value of attribute capturing_group_count.
-
#case_insensitive_root ⇒ Object
readonly
Returns the value of attribute case_insensitive_root.
-
#in_atomic_group ⇒ Object
readonly
Returns the value of attribute in_atomic_group.
-
#warnings ⇒ Object
readonly
Returns the value of attribute warnings.
Instance Method Summary collapse
-
#capture_group ⇒ Object
group context.
- #end_atomic_group ⇒ Object
- #increment_local_capturing_group_count ⇒ Object
-
#initialize(case_insensitive_root: false) ⇒ Context
constructor
A new instance of Context.
-
#new_capturing_group_position(old_position) ⇒ Object
takes and returns 1-indexed group positions.
- #original_capturing_group_count ⇒ Object
- #start_atomic_group ⇒ Object
Constructor Details
#initialize(case_insensitive_root: false) ⇒ Context
Returns a new instance of Context.
14 15 16 17 18 19 20 |
# File 'lib/js_regex/converter/context.rb', line 14 def initialize(case_insensitive_root: false) self.added_capturing_groups_after_group = Hash.new(0) self.capturing_group_count = 0 self.warnings = [] self.case_insensitive_root = case_insensitive_root end |
Instance Attribute Details
#capturing_group_count ⇒ Object
Returns the value of attribute capturing_group_count.
9 10 11 |
# File 'lib/js_regex/converter/context.rb', line 9 def capturing_group_count @capturing_group_count end |
#case_insensitive_root ⇒ Object
Returns the value of attribute case_insensitive_root.
9 10 11 |
# File 'lib/js_regex/converter/context.rb', line 9 def case_insensitive_root @case_insensitive_root end |
#in_atomic_group ⇒ Object
Returns the value of attribute in_atomic_group.
9 10 11 |
# File 'lib/js_regex/converter/context.rb', line 9 def in_atomic_group @in_atomic_group end |
#warnings ⇒ Object
Returns the value of attribute warnings.
9 10 11 |
# File 'lib/js_regex/converter/context.rb', line 9 def warnings @warnings end |
Instance Method Details
#capture_group ⇒ Object
group context
24 25 26 |
# File 'lib/js_regex/converter/context.rb', line 24 def capture_group self.capturing_group_count = capturing_group_count + 1 end |
#end_atomic_group ⇒ Object
32 33 34 |
# File 'lib/js_regex/converter/context.rb', line 32 def end_atomic_group self.in_atomic_group = false end |
#increment_local_capturing_group_count ⇒ Object
36 37 38 39 |
# File 'lib/js_regex/converter/context.rb', line 36 def increment_local_capturing_group_count added_capturing_groups_after_group[original_capturing_group_count] += 1 capture_group end |
#new_capturing_group_position(old_position) ⇒ Object
takes and returns 1-indexed group positions. new is different from old if capturing groups were added in between.
43 44 45 46 47 48 49 |
# File 'lib/js_regex/converter/context.rb', line 43 def new_capturing_group_position(old_position) increment = 0 added_capturing_groups_after_group.each do |after_n_groups, count| increment += count if after_n_groups < old_position end old_position + increment end |
#original_capturing_group_count ⇒ Object
51 52 53 |
# File 'lib/js_regex/converter/context.rb', line 51 def original_capturing_group_count capturing_group_count - total_added_capturing_groups end |
#start_atomic_group ⇒ Object
28 29 30 |
# File 'lib/js_regex/converter/context.rb', line 28 def start_atomic_group self.in_atomic_group = true end |