js_regex 3.11.0 → 3.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c55b0dded778c8851267d5d6d24c4a1afcbdb64e6d28ef3e48da5ba8acaf4d8
4
- data.tar.gz: 71cf3ead5808405c0e32a2fa2dd63a8efa6f5f02df9ef707c12d4238087121a6
3
+ metadata.gz: 4152eef358fa4cdee93ac92b3a2b16590e49be305e81b53e88732ba11eade1f7
4
+ data.tar.gz: 7e43bd8ec3ab16a2512769e49508e655f53960353646937b840777c71406af3f
5
5
  SHA512:
6
- metadata.gz: d5cb89a802b4c90382146f6a49e2c0fbefa5aed7580d0698e8bd392e05ed172880a713dc619b484e9fa0f28689b1b03c35eb08f9efc6673895ca1a450985723e
7
- data.tar.gz: c0c8fda9db5419e5d05b43036190d1fb3d9e44d32c7f57598f21cb6c16d444208dae18ed6cdeb871357188619113475f83deb70c4eef2babfc44a37c27cbbbb9
6
+ metadata.gz: e98d601411d6afd3b2ae10df1b18389109a647d4c2ca5e548cb12831badf20ca31de72a20c4fdc93c971aebf3b694623a586e9d1bdc6741084d46bc05a492bfd
7
+ data.tar.gz: fd337def96701bc627d09bceb921ba50f341ace408533128b8f8fe4a806d1757805ac2437bc864c3a6c82567190f88c760924a1f0f2df23863cbc15c781ca0e1
@@ -72,7 +72,11 @@ class JsRegex
72
72
  EscapeConverter::ESCAPES_SHARED_BY_RUBY_AND_JS
73
73
 
74
74
  def full_recalculation
75
- content = CharacterSet.of_expression(expression)
75
+ # Fetch codepoints as if the set was case-sensitive, then re-add
76
+ # case-insensitivity if needed.
77
+ # This way we preserve the casing of the original set in cases where the
78
+ # whole regexp is case-insensitive, e.g. /[ABc]/i => /[ABc]/i.
79
+ content = original_case_character_set
76
80
  if expression.case_insensitive? && !context.case_insensitive_root
77
81
  content = content.case_insensitive
78
82
  elsif !expression.case_insensitive? && context.case_insensitive_root
@@ -85,6 +89,12 @@ class JsRegex
85
89
  content.to_s_with_surrogate_ranges
86
90
  end
87
91
  end
92
+
93
+ def original_case_character_set
94
+ neutral_set = expression.dup
95
+ neutral_set.each_expression(true) { |exp| exp.options[:i] = false }
96
+ CharacterSet.of_expression(neutral_set)
97
+ end
88
98
  end
89
99
  end
90
100
  end
@@ -1,3 +1,3 @@
1
1
  class JsRegex
2
- VERSION = '3.11.0'
2
+ VERSION = '3.11.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js_regex
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.0
4
+ version: 3.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janosch Müller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-23 00:00:00.000000000 Z
11
+ date: 2024-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: character_set
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  requirements: []
114
- rubygems_version: 3.4.1
114
+ rubygems_version: 3.5.0.dev
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: Converts Ruby regexes to JavaScript regexes.