class JsRegex::Converter::Context
Passed among Converters to globalize basic status data.
The Converters themselves are stateless.
Attributes
added_capturing_groups_after_group[RW]
capturing_group_count[RW]
case_insensitive_root[RW]
in_atomic_group[RW]
warnings[RW]
Public Class Methods
new(case_insensitive_root: false)
click to toggle source
# 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
Public Instance Methods
capture_group()
click to toggle source
group context
# File lib/js_regex/converter/context.rb, line 24 def capture_group self.capturing_group_count = capturing_group_count + 1 end
end_atomic_group()
click to toggle source
# File lib/js_regex/converter/context.rb, line 32 def end_atomic_group self.in_atomic_group = false end
increment_local_capturing_group_count()
click to toggle source
# 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)
click to toggle source
takes and returns 1-indexed group positions. new is different from old if capturing groups were added in between.
# 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()
click to toggle source
# 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()
click to toggle source
# File lib/js_regex/converter/context.rb, line 28 def start_atomic_group self.in_atomic_group = true end
Private Instance Methods
total_added_capturing_groups()
click to toggle source
# File lib/js_regex/converter/context.rb, line 64 def total_added_capturing_groups added_capturing_groups_after_group.values.inject(0, &:+) end