module Srx::IcuRegex
Utilities for handling SRX (ICU) regular expressions
Constants
- HEX_PATTERN
- OCTAL_PATTERN
Public Class Methods
compile(icu_regex)
click to toggle source
@param icu_regex [String] @return [Regexp]
# File lib/srx/icu_regex.rb, line 24 def compile(icu_regex) Regexp.new(to_ruby(icu_regex)) end
to_ruby(icu_regex)
click to toggle source
@param icu_regex [String] @return [String]
# File lib/srx/icu_regex.rb, line 12 def to_ruby(icu_regex) result = icu_regex.dup result.gsub!(HEX_PATTERN, '\u\k<hex>') result.gsub!(OCTAL_PATTERN) do |m| $LAST_MATCH_INFO['oct'].to_i(8).then { |o| o <= 255 ? format(%q(\u{%x}), o) : m } end result end