regexp_parser 1.8.1 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
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