re2 2.15.0.rc1-arm-linux-gnu → 2.16.0-arm-linux-gnu

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: 795e1ea56d1b98b8fb703e96d363d0d4299566f3b579c060d8d74420cd25e2d9
4
- data.tar.gz: 9518d39e43fdb6a781d28054d1f02aeddf8f303704294ab9be88d0b926415760
3
+ metadata.gz: 4c2e15aa8af7f98e27251eeba42cbf224888571be13a07b703449c8a875d7851
4
+ data.tar.gz: a0049d5fcc04a7125c363c0a76c3d4dceec0b147f8e1086153af0ebc97905d9f
5
5
  SHA512:
6
- metadata.gz: fdd7af5cd6f9c8af65108324f67ffcf6fffb7b1c93b71ecc75e283805d0fa0744b741cf5027cb9d84d852bfa962f74890c6f65a04a35ed145f23c02436159f1e
7
- data.tar.gz: f71666df6cc234512108b52bbfe2f7a364d6ddbbf10c22101e7481f257be7a1ed1e9b6efd7fe804bb29f3d21dc17615a6fe62ede3cecfa47e2ed9101264cee3d
6
+ metadata.gz: 4e4a3382242a0422996e2035d2959db545fef883722226c5701219f96254aa1505a10c4c16b81412beab044a9ebb7badc867460eaa9576eaad589ea2b8ecad79
7
+ data.tar.gz: 8024d6990f211e1387a2f1adedb2377e7211e16a6c57712233a73bd02ff4d75705b9e30ffe55cd7e4dfa8458b5af5a68e904b23e651504ac113c8a68eb699995
data/README.md CHANGED
@@ -6,8 +6,8 @@ Python".
6
6
 
7
7
  [![Build Status](https://github.com/mudge/re2/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/mudge/re2/actions)
8
8
 
9
- **Current version:** 2.15.0.rc1
10
- **Bundled RE2 version:** libre2.11 (2024-07-02)
9
+ **Current version:** 2.16.0
10
+ **Bundled RE2 version:** libre2.11 (2025-06-26b)
11
11
 
12
12
  ```ruby
13
13
  RE2('h.*o').full_match?("hello") #=> true
@@ -224,12 +224,15 @@ the set. After all patterns have been added, the set can be compiled using
224
224
  and then
225
225
  [`RE2::Set#match`](https://mudge.name/re2/RE2/Set.html#match-instance_method)
226
226
  will return an array containing the indices of all the patterns that matched.
227
+ [`RE2::Set#size`](https://mudge.name/re2/RE2/Set.html#size-instance_method)
228
+ will return the number of patterns in the set.
227
229
 
228
230
  ```ruby
229
231
  set = RE2::Set.new
230
232
  set.add("abc") #=> 0
231
233
  set.add("def") #=> 1
232
234
  set.add("ghi") #=> 2
235
+ set.size #=> 3
233
236
  set.compile #=> true
234
237
  set.match("abcdefghi") #=> [0, 1, 2]
235
238
  set.match("ghidefabc") #=> [2, 1, 0]
@@ -257,11 +260,11 @@ RE2(non_latin1_pattern.encode("ISO-8859-1"), utf8: false).match(non_latin1_text.
257
260
 
258
261
  This gem requires the following to run:
259
262
 
260
- * [Ruby](https://www.ruby-lang.org/en/) 3.1 to 3.4.0-rc1
263
+ * [Ruby](https://www.ruby-lang.org/en/) 2.6 to 3.4
261
264
 
262
265
  It supports the following RE2 ABI versions:
263
266
 
264
- * libre2.0 (prior to release 2020-03-02) to libre2.11 (2023-07-01 to 2024-07-02)
267
+ * libre2.0 (prior to release 2020-03-02) to libre2.11 (2023-07-01 to 2025-06-26b)
265
268
 
266
269
  ### Native gems
267
270
 
@@ -271,7 +274,7 @@ Where possible, a pre-compiled native gem will be provided for the following pla
271
274
  * `aarch64-linux`, `arm-linux`, `x86-linux` and `x86_64-linux` (requires [glibc](https://www.gnu.org/software/libc/) 2.29+, RubyGems 3.3.22+ and Bundler 2.3.21+)
272
275
  * [musl](https://musl.libc.org/)-based systems such as [Alpine](https://alpinelinux.org) are supported with Bundler 2.5.6+
273
276
  * macOS `x86_64-darwin` and `arm64-darwin`
274
- * Windows `x64-mingw-ucrt`
277
+ * Windows `x64-mingw32` and `x64-mingw-ucrt`
275
278
 
276
279
  ### Verifying the gems
277
280
 
data/Rakefile CHANGED
@@ -33,7 +33,7 @@ cross_platforms = %w[
33
33
  x86_64-linux-musl
34
34
  ].freeze
35
35
 
36
- ENV['RUBY_CC_VERSION'] = %w[3.4.0 3.3.5 3.2.0 3.1.0].join(':')
36
+ RakeCompilerDock.set_ruby_cc_version("~> 2.6", "~> 3.0")
37
37
 
38
38
  Gem::PackageTask.new(re2_gemspec).define
39
39
 
@@ -70,6 +70,7 @@ namespace :gem do
70
70
  desc "Compile and build native gem for #{platform} platform"
71
71
  task platform do
72
72
  RakeCompilerDock.sh <<~SCRIPT, platform: platform, verbose: true
73
+ rbenv shell 3.1.6 &&
73
74
  gem install bundler --no-document &&
74
75
  bundle &&
75
76
  bundle exec rake native:#{platform} pkg/#{re2_gemspec.full_name}-#{Gem::Platform.new(platform)}.gem PATH="/usr/local/bin:$PATH"
data/dependencies.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  libre2:
3
- version: '2024-07-02'
4
- sha256: eb2df807c781601c14a260a507a5bb4509be1ee626024cb45acbd57cb9d4032b
3
+ version: 2025-06-26b
4
+ sha256: 641a3ca337814a6c3676a389ea065812e00ff796f31a427038bc010bae0b86e3
5
5
  abseil:
6
- version: '20240722.0'
7
- sha256: f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3
6
+ version: '20250127.1'
7
+ sha256: b396401fd29e2e679cace77867481d388c807671dc2acc602a0259eeb79b7811
data/ext/re2/extconf.rb CHANGED
@@ -217,6 +217,24 @@ module RE2
217
217
  $defs.push("-DHAVE_ERROR_INFO_ARGUMENT")
218
218
  end
219
219
  end
220
+
221
+ checking_for("RE2::Set::Size()") do
222
+ test_re2_set_size = <<~SRC
223
+ #include <re2/re2.h>
224
+ #include <re2/set.h>
225
+
226
+ int main() {
227
+ RE2::Set s(RE2::DefaultOptions, RE2::UNANCHORED);
228
+ s.Size();
229
+
230
+ return 0;
231
+ }
232
+ SRC
233
+
234
+ if try_compile(test_re2_set_size, compile_options)
235
+ $defs.push("-DHAVE_SET_SIZE")
236
+ end
237
+ end
220
238
  end
221
239
 
222
240
  def static_pkg_config(pc_file, pkg_config_paths)
data/ext/re2/re2.cc CHANGED
@@ -1962,6 +1962,26 @@ static VALUE re2_set_compile(VALUE self) {
1962
1962
  return BOOL2RUBY(s->set->Compile());
1963
1963
  }
1964
1964
 
1965
+ /*
1966
+ * Returns the size of the {RE2::Set}.
1967
+ *
1968
+ * @return [Integer] the number of patterns in the set
1969
+ * @example
1970
+ * set = RE2::Set.new
1971
+ * set.add("abc")
1972
+ * set.size #=> 1
1973
+ */
1974
+ static VALUE re2_set_size(VALUE self) {
1975
+ #ifdef HAVE_SET_SIZE
1976
+ re2_set *s;
1977
+ TypedData_Get_Struct(self, re2_set, &re2_set_data_type, s);
1978
+
1979
+ return INT2FIX(s->set->Size());
1980
+ #else
1981
+ rb_raise(re2_eSetUnsupportedError, "current version of RE2::Set does not have Size method");
1982
+ #endif
1983
+ }
1984
+
1965
1985
  /*
1966
1986
  * Returns whether the underlying RE2 version outputs error information from
1967
1987
  * {https://github.com/google/re2/blob/bc0faab533e2b27b85b8ad312abf061e33ed6b5d/re2/set.h#L62-L65
@@ -1978,6 +1998,19 @@ static VALUE re2_set_match_raises_errors_p(VALUE) {
1978
1998
  #endif
1979
1999
  }
1980
2000
 
2001
+ /*
2002
+ * Returns whether the underlying RE2 version has a Set::Size method.
2003
+ *
2004
+ * @return [Boolean] whether the underlying RE2 has a Set::Size method
2005
+ */
2006
+ static VALUE re2_set_size_p(VALUE) {
2007
+ #ifdef HAVE_SET_SIZE
2008
+ return Qtrue;
2009
+ #else
2010
+ return Qfalse;
2011
+ #endif
2012
+ }
2013
+
1981
2014
  /*
1982
2015
  * Matches the given text against patterns in the set, returning an array of
1983
2016
  * integer indices of the matching patterns if matched or an empty array if
@@ -2208,11 +2241,15 @@ extern "C" void Init_re2(void) {
2208
2241
 
2209
2242
  rb_define_singleton_method(re2_cSet, "match_raises_errors?",
2210
2243
  RUBY_METHOD_FUNC(re2_set_match_raises_errors_p), 0);
2244
+ rb_define_singleton_method(re2_cSet, "size?",
2245
+ RUBY_METHOD_FUNC(re2_set_size_p), 0);
2211
2246
  rb_define_method(re2_cSet, "initialize",
2212
2247
  RUBY_METHOD_FUNC(re2_set_initialize), -1);
2213
2248
  rb_define_method(re2_cSet, "add", RUBY_METHOD_FUNC(re2_set_add), 1);
2214
2249
  rb_define_method(re2_cSet, "compile", RUBY_METHOD_FUNC(re2_set_compile), 0);
2215
2250
  rb_define_method(re2_cSet, "match", RUBY_METHOD_FUNC(re2_set_match), -1);
2251
+ rb_define_method(re2_cSet, "size", RUBY_METHOD_FUNC(re2_set_size), 0);
2252
+ rb_define_method(re2_cSet, "length", RUBY_METHOD_FUNC(re2_set_size), 0);
2216
2253
 
2217
2254
  rb_define_module_function(re2_mRE2, "Replace",
2218
2255
  RUBY_METHOD_FUNC(re2_Replace), 3);
data/lib/2.6/re2.so ADDED
Binary file
data/lib/2.7/re2.so ADDED
Binary file
data/lib/3.0/re2.so ADDED
Binary file
data/lib/3.1/re2.so CHANGED
Binary file
data/lib/3.2/re2.so CHANGED
Binary file
data/lib/3.3/re2.so CHANGED
Binary file
data/lib/3.4/re2.so CHANGED
Binary file
data/lib/re2/version.rb CHANGED
@@ -10,5 +10,5 @@
10
10
 
11
11
 
12
12
  module RE2
13
- VERSION = "2.15.0.rc1"
13
+ VERSION = "2.16.0"
14
14
  end
data/re2.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.homepage = "https://github.com/mudge/re2"
12
12
  s.extensions = ["ext/re2/extconf.rb"]
13
13
  s.license = "BSD-3-Clause"
14
- s.required_ruby_version = ">= 3.1.0"
14
+ s.required_ruby_version = ">= 2.6.0"
15
15
  s.files = [
16
16
  "dependencies.yml",
17
17
  "ext/re2/extconf.rb",
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
41
41
  "spec/re2/scanner_spec.rb"
42
42
  ]
43
43
  s.add_development_dependency("rake-compiler", "~> 1.2.7")
44
- s.add_development_dependency("rake-compiler-dock", "~> 1.7.0.rc1")
44
+ s.add_development_dependency("rake-compiler-dock", "~> 1.9.1")
45
45
  s.add_development_dependency("rspec", "~> 3.2")
46
46
  s.add_runtime_dependency("mini_portile2", "~> 2.8.7") # keep version in sync with extconf.rb
47
47
  end
data/spec/re2/set_spec.rb CHANGED
@@ -204,6 +204,50 @@ RSpec.describe RE2::Set do
204
204
  end
205
205
  end
206
206
 
207
+ describe "#size" do
208
+ it "returns the number of patterns added to the set", :aggregate_failures do
209
+ skip "Underlying RE2::Set has no Size method" unless RE2::Set.size?
210
+
211
+ set = RE2::Set.new
212
+
213
+ expect(set.size).to eq(0)
214
+
215
+ set.add("abc")
216
+
217
+ expect(set.size).to eq(1)
218
+
219
+ set.add("def")
220
+
221
+ expect(set.size).to eq(2)
222
+ end
223
+
224
+ it "raises an error if RE2 does not support Set::Size" do
225
+ skip "Underlying RE2::Set has a Size method" if RE2::Set.size?
226
+
227
+ set = RE2::Set.new
228
+
229
+ expect { set.size }.to raise_error(RE2::Set::UnsupportedError)
230
+ end
231
+ end
232
+
233
+ describe "#length" do
234
+ it "is an alias for size" do
235
+ skip "Underlying RE2::Set has no Size method" unless RE2::Set.size?
236
+
237
+ set = RE2::Set.new
238
+
239
+ expect(set.length).to eq(0)
240
+
241
+ set.add("abc")
242
+
243
+ expect(set.length).to eq(1)
244
+
245
+ set.add("def")
246
+
247
+ expect(set.length).to eq(2)
248
+ end
249
+ end
250
+
207
251
  def silence_stderr
208
252
  original_stream = STDERR
209
253
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: re2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.0.rc1
4
+ version: 2.16.0
5
5
  platform: arm-linux-gnu
6
6
  authors:
7
7
  - Paul Mucur
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-12-16 00:00:00.000000000 Z
12
+ date: 2025-06-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 1.7.0.rc1
34
+ version: 1.9.1
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 1.7.0.rc1
41
+ version: 1.9.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -70,6 +70,9 @@ files:
70
70
  - ext/re2/extconf.rb
71
71
  - ext/re2/re2.cc
72
72
  - ext/re2/recipes.rb
73
+ - lib/2.6/re2.so
74
+ - lib/2.7/re2.so
75
+ - lib/3.0/re2.so
73
76
  - lib/3.1/re2.so
74
77
  - lib/3.2/re2.so
75
78
  - lib/3.3/re2.so
@@ -100,20 +103,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
103
  requirements:
101
104
  - - ">="
102
105
  - !ruby/object:Gem::Version
103
- version: '3.1'
106
+ version: '2.6'
104
107
  - - "<"
105
108
  - !ruby/object:Gem::Version
106
109
  version: 3.5.dev
107
110
  required_rubygems_version: !ruby/object:Gem::Requirement
108
111
  requirements:
109
- - - ">"
110
- - !ruby/object:Gem::Version
111
- version: 1.3.1
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
114
  version: 3.3.22
115
115
  requirements: []
116
- rubygems_version: 3.3.26
116
+ rubygems_version: 3.3.27
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: Ruby bindings to RE2.