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.
16 17 18 19 20 21 22 |
# File 'lib/js_regex/converter/context.rb', line 16 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.
11 12 13 |
# File 'lib/js_regex/converter/context.rb', line 11 def capturing_group_count @capturing_group_count end |
#case_insensitive_root ⇒ Object
Returns the value of attribute case_insensitive_root.
11 12 13 |
# File 'lib/js_regex/converter/context.rb', line 11 def case_insensitive_root @case_insensitive_root end |
#in_atomic_group ⇒ Object
Returns the value of attribute in_atomic_group.
11 12 13 |
# File 'lib/js_regex/converter/context.rb', line 11 def in_atomic_group @in_atomic_group end |
#warnings ⇒ Object
Returns the value of attribute warnings.
11 12 13 |
# File 'lib/js_regex/converter/context.rb', line 11 def warnings @warnings end |
Instance Method Details
#capture_group ⇒ Object
group context
26 27 28 |
# File 'lib/js_regex/converter/context.rb', line 26 def capture_group self.capturing_group_count = capturing_group_count + 1 end |
#end_atomic_group ⇒ Object
34 35 36 |
# File 'lib/js_regex/converter/context.rb', line 34 def end_atomic_group self.in_atomic_group = false end |
#increment_local_capturing_group_count ⇒ Object
38 39 40 41 |
# File 'lib/js_regex/converter/context.rb', line 38 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.
45 46 47 48 49 50 51 |
# File 'lib/js_regex/converter/context.rb', line 45 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
53 54 55 |
# File 'lib/js_regex/converter/context.rb', line 53 def original_capturing_group_count capturing_group_count - total_added_capturing_groups end |
#start_atomic_group ⇒ Object
30 31 32 |
# File 'lib/js_regex/converter/context.rb', line 30 def start_atomic_group self.in_atomic_group = true end |