regexp_parser 1.8.1 → 1.8.2

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: 047ef5746234f1e25d914d669596a9811f6c5871e3f8c2516434470d561a7c92
4
- data.tar.gz: b3ec51e10f4331a7c0563ad7ab6f78ead20482baa1eb3c32a0de0d1f769bdcc0
3
+ metadata.gz: 2d1c795eb67eee01aa7976a672349b9a0c7f6364262ffb8f53488f6d9949db07
4
+ data.tar.gz: a38fddc769f16841e54f5dde90535e31ef7145e5bd41560ccf70443968495493
5
5
  SHA512:
6
- metadata.gz: e06fee359a02e12a0c142ea1175b96de4d7bbc2af2d9ec83255fa2849e8922bfdf04ad3f26e2b10a1d2f57e87830e864feaa9b444c714de54799b97bda62ce4b
7
- data.tar.gz: 8de81ed00adc5f760d3770ddf40c200b20d3671b4ee3832d43dcdd0956d7cfe4557bf30a8f7e994bbe82436ab3f8c62038c3088214ddf0907af0c301e2ffd58c
6
+ metadata.gz: 8dfcd3ba9f2a09370142e892184ccb9a1a973e24dea691582ca43cc670589dd7050eb30dbd924ae9e0584d124183dc2f62adca475628a726ecffaa22fcfb8903
7
+ data.tar.gz: cd23a308e4d62af9a07bbec164c96ca3213de5a4f686c450fc90bca56387faa88febb8a3387e810d0fd8b78e06b191bd76777fe8b3f3cda9da5582b9009d1144
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ### [1.8.2] - 2020-10-11 - [Janosch Müller](mailto:janosch84@gmail.com)
4
+
5
+ ### Fixed
6
+
7
+ - fix `FrozenError` in `Expression::Base#repetitions` on Ruby 3.0
8
+ * thanks to [Thomas Walpole](https://github.com/twalpole)
9
+ - removed "unknown future version" warning on Ruby 3.0
10
+
3
11
  ### [1.8.1] - 2020-09-28 - [Janosch Müller](mailto:janosch84@gmail.com)
4
12
 
5
13
  ### Fixed
data/README.md CHANGED
@@ -8,8 +8,8 @@ A Ruby gem for tokenizing, parsing, and transforming regular expressions.
8
8
  * A scanner/tokenizer based on [Ragel](http://www.colm.net/open-source/ragel/)
9
9
  * A lexer that produces a "stream" of token objects.
10
10
  * A parser that produces a "tree" of Expression objects (OO API)
11
- * Runs on Ruby 2.x and JRuby runtimes
12
- * Recognizes Ruby 1.8, 1.9, and 2.x regular expressions [See Supported Syntax](#supported-syntax)
11
+ * Runs on Ruby 2.x, 3.x and JRuby runtimes
12
+ * Recognizes Ruby 1.8, 1.9, 2.x and 3.x regular expressions [See Supported Syntax](#supported-syntax)
13
13
 
14
14
 
15
15
  _For examples of regexp_parser in use, see [Example Projects](#example-projects)._
@@ -18,7 +18,7 @@ _For examples of regexp_parser in use, see [Example Projects](#example-projects)
18
18
  ---
19
19
  ## Requirements
20
20
 
21
- * Ruby >= 1.9
21
+ * Ruby >= 2.0
22
22
  * Ragel >= 6.0, but only if you want to build the gem or work on the scanner.
23
23
 
24
24
 
@@ -317,7 +317,7 @@ Expression class. See the next section for details._
317
317
 
318
318
  ## Supported Syntax
319
319
  The three modules support all the regular expression syntax features of Ruby 1.8,
320
- 1.9, and 2.x:
320
+ 1.9, 2.x and 3.x:
321
321
 
322
322
  _Note that not all of these are available in all versions of Ruby_
323
323
 
@@ -440,13 +440,17 @@ rake install
440
440
  ## Example Projects
441
441
  Projects using regexp_parser.
442
442
 
443
+ - [capybara](https://github.com/teamcapybara/capybara) is an integration testing tool that uses regexp_parser to convert Regexps to css/xpath selectors.
444
+
445
+ - [js_regex](https://github.com/janosch-x/js_regex) converts Ruby regular expressions to JavaScript-compatible regular expressions.
446
+
443
447
  - [meta_re](https://github.com/ammar/meta_re) is a regular expression preprocessor with alias support.
444
448
 
445
449
  - [mutant](https://github.com/mbj/mutant) (before v0.9.0) manipulates your regular expressions (amongst others) to see if your tests cover their behavior.
446
450
 
447
- - [twitter-cldr-rb](https://github.com/twitter/twitter-cldr-rb) uses regexp_parser to generate examples of postal codes.
451
+ - [rubocop](https://github.com/rubocop-hq/rubocop) is a linter for Ruby that uses regexp_parser to lint Regexps.
448
452
 
449
- - [js_regex](https://github.com/janosch-x/js_regex) converts Ruby regular expressions to JavaScript-compatible regular expressions.
453
+ - [twitter-cldr-rb](https://github.com/twitter/twitter-cldr-rb) is a localization helper that uses regexp_parser to generate examples of postal codes.
450
454
 
451
455
 
452
456
  ## References
@@ -475,4 +479,4 @@ Documentation and books used while working on this project.
475
479
 
476
480
  ---
477
481
  ##### Copyright
478
- _Copyright (c) 2010-2019 Ammar Ali. See LICENSE file for details._
482
+ _Copyright (c) 2010-2020 Ammar Ali. See LICENSE file for details._
@@ -80,8 +80,12 @@ module Regexp::Expression
80
80
  return 1..1 unless quantified?
81
81
  min = quantifier.min
82
82
  max = quantifier.max < 0 ? Float::INFINITY : quantifier.max
83
- # fix Range#minmax - https://bugs.ruby-lang.org/issues/15807
84
- (min..max).tap { |r| r.define_singleton_method(:minmax) { [min, max] } }
83
+ range = min..max
84
+ # fix Range#minmax on old Rubies - https://bugs.ruby-lang.org/issues/15807
85
+ if RUBY_VERSION.to_f < 2.7
86
+ range.define_singleton_method(:minmax) { [min, max] }
87
+ end
88
+ range
85
89
  end
86
90
 
87
91
  def greedy?
@@ -74,9 +74,9 @@ module Regexp::Syntax
74
74
  end
75
75
 
76
76
  def warn_if_future_version(const_name)
77
- return if comparable_version(const_name) < comparable_version('3.0.0')
77
+ return if comparable_version(const_name) < comparable_version('4.0.0')
78
78
 
79
- warn('This library has only been tested up to Ruby 2.x, '\
79
+ warn('This library has only been tested up to Ruby 3.x, '\
80
80
  "but you are running with #{const_get(const_name).inspect}")
81
81
  end
82
82
  end
@@ -1,5 +1,5 @@
1
1
  class Regexp
2
2
  class Parser
3
- VERSION = '1.8.1'
3
+ VERSION = '1.8.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regexp_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 1.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ammar Ali
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-28 00:00:00.000000000 Z
11
+ date: 2020-10-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A library for tokenizing, lexing, and parsing Ruby regular expressions.
14
14
  email:
@@ -185,79 +185,79 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.1.2
188
+ rubygems_version: 3.2.0.rc.1
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: Scanner, lexer, parser for ruby's regular expressions
192
192
  test_files:
193
- - spec/token/token_spec.rb
194
- - spec/spec_helper.rb
195
- - spec/lexer/escapes_spec.rb
196
- - spec/lexer/keep_spec.rb
193
+ - spec/expression/base_spec.rb
194
+ - spec/expression/clone_spec.rb
195
+ - spec/expression/conditional_spec.rb
196
+ - spec/expression/free_space_spec.rb
197
+ - spec/expression/methods/match_length_spec.rb
198
+ - spec/expression/methods/match_spec.rb
199
+ - spec/expression/methods/strfregexp_spec.rb
200
+ - spec/expression/methods/tests_spec.rb
201
+ - spec/expression/methods/traverse_spec.rb
202
+ - spec/expression/options_spec.rb
203
+ - spec/expression/root_spec.rb
204
+ - spec/expression/sequence_spec.rb
205
+ - spec/expression/subexpression_spec.rb
206
+ - spec/expression/to_h_spec.rb
207
+ - spec/expression/to_s_spec.rb
197
208
  - spec/lexer/all_spec.rb
198
209
  - spec/lexer/conditionals_spec.rb
199
- - spec/lexer/nesting_spec.rb
200
210
  - spec/lexer/delimiters_spec.rb
201
- - spec/lexer/refcalls_spec.rb
211
+ - spec/lexer/escapes_spec.rb
212
+ - spec/lexer/keep_spec.rb
202
213
  - spec/lexer/literals_spec.rb
214
+ - spec/lexer/nesting_spec.rb
215
+ - spec/lexer/refcalls_spec.rb
216
+ - spec/parser/all_spec.rb
217
+ - spec/parser/alternation_spec.rb
218
+ - spec/parser/anchors_spec.rb
219
+ - spec/parser/conditionals_spec.rb
220
+ - spec/parser/errors_spec.rb
203
221
  - spec/parser/escapes_spec.rb
204
- - spec/parser/properties_spec.rb
205
- - spec/parser/sets_spec.rb
206
222
  - spec/parser/free_space_spec.rb
223
+ - spec/parser/groups_spec.rb
207
224
  - spec/parser/keep_spec.rb
208
225
  - spec/parser/options_spec.rb
209
- - spec/parser/all_spec.rb
210
- - spec/parser/conditionals_spec.rb
211
- - spec/parser/types_spec.rb
212
- - spec/parser/anchors_spec.rb
213
- - spec/parser/alternation_spec.rb
214
226
  - spec/parser/posix_classes_spec.rb
215
- - spec/parser/set/ranges_spec.rb
216
- - spec/parser/set/intersections_spec.rb
217
- - spec/parser/errors_spec.rb
218
- - spec/parser/refcalls_spec.rb
219
- - spec/parser/groups_spec.rb
227
+ - spec/parser/properties_spec.rb
220
228
  - spec/parser/quantifiers_spec.rb
221
- - spec/support/warning_extractor.rb
222
- - spec/support/shared_examples.rb
223
- - spec/support/runner.rb
224
- - spec/expression/subexpression_spec.rb
225
- - spec/expression/methods/match_spec.rb
226
- - spec/expression/methods/match_length_spec.rb
227
- - spec/expression/methods/traverse_spec.rb
228
- - spec/expression/methods/strfregexp_spec.rb
229
- - spec/expression/methods/tests_spec.rb
230
- - spec/expression/free_space_spec.rb
231
- - spec/expression/options_spec.rb
232
- - spec/expression/to_s_spec.rb
233
- - spec/expression/root_spec.rb
234
- - spec/expression/sequence_spec.rb
235
- - spec/expression/clone_spec.rb
236
- - spec/expression/to_h_spec.rb
237
- - spec/expression/conditional_spec.rb
238
- - spec/expression/base_spec.rb
239
- - spec/syntax/syntax_spec.rb
240
- - spec/syntax/syntax_token_map_spec.rb
241
- - spec/syntax/versions/1.9.3_spec.rb
242
- - spec/syntax/versions/2.2.0_spec.rb
243
- - spec/syntax/versions/1.9.1_spec.rb
244
- - spec/syntax/versions/2.0.0_spec.rb
245
- - spec/syntax/versions/1.8.6_spec.rb
246
- - spec/syntax/versions/aliases_spec.rb
247
- - spec/scanner/escapes_spec.rb
248
- - spec/scanner/properties_spec.rb
249
- - spec/scanner/sets_spec.rb
250
- - spec/scanner/free_space_spec.rb
251
- - spec/scanner/keep_spec.rb
252
- - spec/scanner/options_spec.rb
229
+ - spec/parser/refcalls_spec.rb
230
+ - spec/parser/set/intersections_spec.rb
231
+ - spec/parser/set/ranges_spec.rb
232
+ - spec/parser/sets_spec.rb
233
+ - spec/parser/types_spec.rb
253
234
  - spec/scanner/all_spec.rb
254
- - spec/scanner/conditionals_spec.rb
255
- - spec/scanner/types_spec.rb
256
235
  - spec/scanner/anchors_spec.rb
257
- - spec/scanner/meta_spec.rb
258
- - spec/scanner/errors_spec.rb
236
+ - spec/scanner/conditionals_spec.rb
259
237
  - spec/scanner/delimiters_spec.rb
260
- - spec/scanner/refcalls_spec.rb
238
+ - spec/scanner/errors_spec.rb
239
+ - spec/scanner/escapes_spec.rb
240
+ - spec/scanner/free_space_spec.rb
261
241
  - spec/scanner/groups_spec.rb
242
+ - spec/scanner/keep_spec.rb
262
243
  - spec/scanner/literals_spec.rb
244
+ - spec/scanner/meta_spec.rb
245
+ - spec/scanner/options_spec.rb
246
+ - spec/scanner/properties_spec.rb
263
247
  - spec/scanner/quantifiers_spec.rb
248
+ - spec/scanner/refcalls_spec.rb
249
+ - spec/scanner/sets_spec.rb
250
+ - spec/scanner/types_spec.rb
251
+ - spec/spec_helper.rb
252
+ - spec/support/runner.rb
253
+ - spec/support/shared_examples.rb
254
+ - spec/support/warning_extractor.rb
255
+ - spec/syntax/syntax_spec.rb
256
+ - spec/syntax/syntax_token_map_spec.rb
257
+ - spec/syntax/versions/1.8.6_spec.rb
258
+ - spec/syntax/versions/1.9.1_spec.rb
259
+ - spec/syntax/versions/1.9.3_spec.rb
260
+ - spec/syntax/versions/2.0.0_spec.rb
261
+ - spec/syntax/versions/2.2.0_spec.rb
262
+ - spec/syntax/versions/aliases_spec.rb
263
+ - spec/token/token_spec.rb