srl_ruby 0.4.4 → 0.4.8
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 +5 -5
- data/.rubocop.yml +278 -22
- data/CHANGELOG.md +39 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/Rakefile +3 -0
- data/appveyor.yml +15 -14
- data/bin/srl2ruby +17 -12
- data/bin/srl2ruby_cli_parser.rb +6 -6
- data/features/lib/step_definitions/srl_testing_steps.rb +2 -0
- data/features/lib/support/env..rb +2 -0
- data/lib/regex/abstract_method.rb +2 -0
- data/lib/regex/alternation.rb +3 -3
- data/lib/regex/anchor.rb +3 -0
- data/lib/regex/atomic_expression.rb +2 -0
- data/lib/regex/capturing_group.rb +8 -3
- data/lib/regex/char_class.rb +4 -2
- data/lib/regex/char_range.rb +4 -3
- data/lib/regex/char_shorthand.rb +3 -0
- data/lib/regex/character.rb +7 -2
- data/lib/regex/compound_expression.rb +2 -0
- data/lib/regex/concatenation.rb +3 -1
- data/lib/regex/expression.rb +6 -1
- data/lib/regex/lookaround.rb +3 -1
- data/lib/regex/match_option.rb +2 -0
- data/lib/regex/monadic_expression.rb +2 -0
- data/lib/regex/multiplicity.rb +9 -9
- data/lib/regex/non_capturing_group.rb +3 -1
- data/lib/regex/polyadic_expression.rb +4 -0
- data/lib/regex/quantifiable.rb +3 -1
- data/lib/regex/raw_expression.rb +2 -0
- data/lib/regex/repetition.rb +2 -0
- data/lib/regex/wildcard.rb +2 -5
- data/lib/srl_ruby/ast_builder.rb +82 -115
- data/lib/srl_ruby/grammar.rb +80 -92
- data/lib/srl_ruby/regex_repr.rb +2 -0
- data/lib/srl_ruby/tokenizer.rb +11 -5
- data/lib/srl_ruby/version.rb +3 -1
- data/lib/srl_ruby.rb +2 -0
- data/spec/acceptance/srl_test_suite_spec.rb +2 -0
- data/spec/acceptance/support/rule_file_ast_builder.rb +2 -0
- data/spec/acceptance/support/rule_file_grammar.rb +7 -5
- data/spec/acceptance/support/rule_file_nodes.rb +2 -0
- data/spec/acceptance/support/rule_file_parser.rb +2 -0
- data/spec/acceptance/support/rule_file_tokenizer.rb +11 -4
- data/spec/regex/atomic_expression_spec.rb +2 -0
- data/spec/regex/character_spec.rb +12 -6
- data/spec/regex/match_option_spec.rb +2 -0
- data/spec/regex/monadic_expression_spec.rb +2 -0
- data/spec/regex/multiplicity_spec.rb +4 -0
- data/spec/regex/repetition_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/srl_ruby/srl_ruby_spec.rb +2 -0
- data/spec/srl_ruby/tokenizer_spec.rb +2 -0
- data/spec/srl_ruby_spec.rb +8 -6
- data/srl_ruby.gemspec +7 -5
- metadata +16 -16
data/spec/spec_helper.rb
CHANGED
data/spec/srl_ruby_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'spec_helper' # Use the RSpec framework
|
2
4
|
require_relative '../lib/srl_ruby'
|
3
5
|
|
@@ -224,7 +226,7 @@ SRL
|
|
224
226
|
let(:prefix) { 'letter from p to t ' }
|
225
227
|
|
226
228
|
it "should parse 'once' syntax" do
|
227
|
-
regexp = SrlRuby.parse(prefix
|
229
|
+
regexp = SrlRuby.parse("#{prefix}once")
|
228
230
|
expect(regexp.source).to eq('[p-t]{1}')
|
229
231
|
end
|
230
232
|
|
@@ -244,26 +246,26 @@ SRL
|
|
244
246
|
end
|
245
247
|
|
246
248
|
it "should parse 'between ... and ... times' syntax" do
|
247
|
-
regexp = SrlRuby.parse(prefix
|
249
|
+
regexp = SrlRuby.parse("#{prefix}between 2 and 4 times")
|
248
250
|
expect(regexp.source).to eq('[p-t]{2,4}')
|
249
251
|
|
250
252
|
# Dropping 'times' keyword is a shorter alternative syntax
|
251
|
-
regexp = SrlRuby.parse(prefix
|
253
|
+
regexp = SrlRuby.parse("#{prefix}between 2 and 4")
|
252
254
|
expect(regexp.source).to eq('[p-t]{2,4}')
|
253
255
|
end
|
254
256
|
|
255
257
|
it "should parse 'once or more' syntax" do
|
256
|
-
regexp = SrlRuby.parse(prefix
|
258
|
+
regexp = SrlRuby.parse("#{prefix}once or more")
|
257
259
|
expect(regexp.source).to eq('[p-t]+')
|
258
260
|
end
|
259
261
|
|
260
262
|
it "should parse 'never or more' syntax" do
|
261
|
-
regexp = SrlRuby.parse(prefix
|
263
|
+
regexp = SrlRuby.parse("#{prefix}never or more")
|
262
264
|
expect(regexp.source).to eq('[p-t]*')
|
263
265
|
end
|
264
266
|
|
265
267
|
it "should parse 'at least ... times' syntax" do
|
266
|
-
regexp = SrlRuby.parse(prefix
|
268
|
+
regexp = SrlRuby.parse("#{prefix}at least 10 times")
|
267
269
|
expect(regexp.source).to eq('[p-t]{10,}')
|
268
270
|
end
|
269
271
|
end # context
|
data/srl_ruby.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('../lib', __FILE__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'srl_ruby/version'
|
@@ -46,7 +48,7 @@ Gem::Specification.new do |spec|
|
|
46
48
|
spec.email = ['famished.tiger@yahoo.com']
|
47
49
|
|
48
50
|
spec.description = <<-DESCR
|
49
|
-
A compiler and library that transforms highly readable Simple Regex Language
|
51
|
+
A compiler and library that transforms highly readable Simple Regex Language
|
50
52
|
patterns into regular expressions.
|
51
53
|
DESCR
|
52
54
|
spec.summary = <<-SUMMARY
|
@@ -63,14 +65,14 @@ SUMMARY
|
|
63
65
|
spec.require_paths = ['lib']
|
64
66
|
PkgExtending.pkg_files(spec)
|
65
67
|
PkgExtending.pkg_documentation(spec)
|
66
|
-
spec.required_ruby_version = '>= 2.
|
68
|
+
spec.required_ruby_version = '>= 2.5.0'
|
67
69
|
|
68
70
|
# Runtime dependencies
|
69
|
-
spec.add_dependency 'rley', '~> 0.
|
71
|
+
spec.add_dependency 'rley', '~> 0.8.02'
|
70
72
|
|
71
73
|
# Development dependencies
|
72
|
-
spec.add_development_dependency 'bundler', '~>
|
74
|
+
spec.add_development_dependency 'bundler', '~> 2.2.0'
|
73
75
|
spec.add_development_dependency 'cucumber', '>= 2.2.0'
|
74
|
-
spec.add_development_dependency 'rake', '~>
|
76
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
75
77
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
76
78
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: srl_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dimitri Geshef
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rley
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.8.02
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.8.02
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: cucumber
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '12.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '12.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,8 +80,9 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.0'
|
83
|
-
description:
|
84
|
-
|
83
|
+
description: |2
|
84
|
+
A compiler and library that transforms highly readable Simple Regex Language
|
85
|
+
patterns into regular expressions.
|
85
86
|
email:
|
86
87
|
- famished.tiger@yahoo.com
|
87
88
|
executables:
|
@@ -189,7 +190,7 @@ homepage: https://github.com/famished-tiger/SRL-Ruby
|
|
189
190
|
licenses:
|
190
191
|
- MIT
|
191
192
|
metadata: {}
|
192
|
-
post_install_message:
|
193
|
+
post_install_message:
|
193
194
|
rdoc_options:
|
194
195
|
- --charset=UTF-8 --exclude="examples|spec"
|
195
196
|
require_paths:
|
@@ -198,16 +199,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
198
199
|
requirements:
|
199
200
|
- - ">="
|
200
201
|
- !ruby/object:Gem::Version
|
201
|
-
version: 2.
|
202
|
+
version: 2.5.0
|
202
203
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
204
|
requirements:
|
204
205
|
- - ">="
|
205
206
|
- !ruby/object:Gem::Version
|
206
207
|
version: '0'
|
207
208
|
requirements: []
|
208
|
-
|
209
|
-
|
210
|
-
signing_key:
|
209
|
+
rubygems_version: 3.1.4
|
210
|
+
signing_key:
|
211
211
|
specification_version: 4
|
212
212
|
summary: A parser for the [Simple Regex Language](https://simple-regex.com/). It translates
|
213
213
|
patterns expressed in SRL into plain Ruby Regexp objects or in regex literals. Use
|