ripper_ruby_parser 1.7.0 → 1.9.0
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 +4 -4
- data/CHANGELOG.md +76 -0
- data/README.md +6 -4
- data/lib/ripper_ruby_parser/commenting_ripper_parser.rb +24 -12
- data/lib/ripper_ruby_parser/sexp_handlers.rb +2 -0
- data/lib/ripper_ruby_parser/sexp_handlers/assignment.rb +9 -4
- data/lib/ripper_ruby_parser/sexp_handlers/blocks.rb +40 -52
- data/lib/ripper_ruby_parser/sexp_handlers/conditionals.rb +17 -19
- data/lib/ripper_ruby_parser/sexp_handlers/helper_methods.rb +35 -2
- data/lib/ripper_ruby_parser/sexp_handlers/literals.rb +15 -242
- data/lib/ripper_ruby_parser/sexp_handlers/method_calls.rb +9 -5
- data/lib/ripper_ruby_parser/sexp_handlers/methods.rb +22 -17
- data/lib/ripper_ruby_parser/sexp_handlers/operators.rb +3 -3
- data/lib/ripper_ruby_parser/sexp_handlers/string_literals.rb +256 -0
- data/lib/ripper_ruby_parser/sexp_processor.rb +12 -56
- data/lib/ripper_ruby_parser/unescape.rb +89 -43
- data/lib/ripper_ruby_parser/version.rb +1 -1
- metadata +125 -76
- data/Rakefile +0 -33
- data/test/end_to_end/comments_test.rb +0 -59
- data/test/end_to_end/comparison_test.rb +0 -104
- data/test/end_to_end/lib_comparison_test.rb +0 -29
- data/test/end_to_end/line_numbering_test.rb +0 -31
- data/test/end_to_end/samples_comparison_test.rb +0 -13
- data/test/end_to_end/test_comparison_test.rb +0 -32
- data/test/pt_testcase/pt_test.rb +0 -44
- data/test/ripper_ruby_parser/commenting_ripper_parser_test.rb +0 -200
- data/test/ripper_ruby_parser/parser_test.rb +0 -553
- data/test/ripper_ruby_parser/sexp_handlers/assignment_test.rb +0 -613
- data/test/ripper_ruby_parser/sexp_handlers/blocks_test.rb +0 -679
- data/test/ripper_ruby_parser/sexp_handlers/conditionals_test.rb +0 -536
- data/test/ripper_ruby_parser/sexp_handlers/literals_test.rb +0 -1106
- data/test/ripper_ruby_parser/sexp_handlers/loops_test.rb +0 -209
- data/test/ripper_ruby_parser/sexp_handlers/method_calls_test.rb +0 -267
- data/test/ripper_ruby_parser/sexp_handlers/methods_test.rb +0 -421
- data/test/ripper_ruby_parser/sexp_handlers/operators_test.rb +0 -399
- data/test/ripper_ruby_parser/sexp_processor_test.rb +0 -303
- data/test/ripper_ruby_parser/version_test.rb +0 -7
- data/test/samples/assignment.rb +0 -17
- data/test/samples/comments.rb +0 -13
- data/test/samples/conditionals.rb +0 -23
- data/test/samples/lambdas.rb +0 -5
- data/test/samples/loops.rb +0 -36
- data/test/samples/misc.rb +0 -281
- data/test/samples/number.rb +0 -7
- data/test/samples/operators.rb +0 -18
- data/test/samples/strings.rb +0 -147
- data/test/test_helper.rb +0 -107
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ripper_ruby_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sexp_processor
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '5.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest-focus
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.3.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.3.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.14.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.14.0
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: rake
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,37 +80,113 @@ dependencies:
|
|
52
80
|
- - "~>"
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: '13.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake-manifest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.2.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.2.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.18.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.18.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop-minitest
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.15.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.15.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-performance
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.11.0
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.11.0
|
55
139
|
- !ruby/object:Gem::Dependency
|
56
140
|
name: ruby_parser
|
57
141
|
requirement: !ruby/object:Gem::Requirement
|
58
142
|
requirements:
|
59
143
|
- - "~>"
|
60
144
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
145
|
+
version: 3.17.0
|
62
146
|
type: :development
|
63
147
|
prerelease: false
|
64
148
|
version_requirements: !ruby/object:Gem::Requirement
|
65
149
|
requirements:
|
66
150
|
- - "~>"
|
67
151
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
152
|
+
version: 3.17.0
|
69
153
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
154
|
+
name: sexp_processor
|
71
155
|
requirement: !ruby/object:Gem::Requirement
|
72
156
|
requirements:
|
73
157
|
- - ">="
|
74
158
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
159
|
+
version: 4.13.0
|
160
|
+
- - "<"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '4.16'
|
76
163
|
type: :development
|
77
164
|
prerelease: false
|
78
165
|
version_requirements: !ruby/object:Gem::Requirement
|
79
166
|
requirements:
|
80
167
|
- - ">="
|
81
168
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
|
84
|
-
|
85
|
-
|
169
|
+
version: 4.13.0
|
170
|
+
- - "<"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '4.16'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: simplecov
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 0.21.0
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 0.21.0
|
187
|
+
description: |
|
188
|
+
RipperRubyParser is a parser for Ruby based on Ripper that aims to be a
|
189
|
+
drop-in replacement for RubyParser.
|
86
190
|
email:
|
87
191
|
- matijs@matijs.net
|
88
192
|
executables: []
|
@@ -92,7 +196,6 @@ extra_rdoc_files:
|
|
92
196
|
files:
|
93
197
|
- CHANGELOG.md
|
94
198
|
- README.md
|
95
|
-
- Rakefile
|
96
199
|
- lib/ripper_ruby_parser.rb
|
97
200
|
- lib/ripper_ruby_parser/commenting_ripper_parser.rb
|
98
201
|
- lib/ripper_ruby_parser/parser.rb
|
@@ -106,44 +209,19 @@ files:
|
|
106
209
|
- lib/ripper_ruby_parser/sexp_handlers/method_calls.rb
|
107
210
|
- lib/ripper_ruby_parser/sexp_handlers/methods.rb
|
108
211
|
- lib/ripper_ruby_parser/sexp_handlers/operators.rb
|
212
|
+
- lib/ripper_ruby_parser/sexp_handlers/string_literals.rb
|
109
213
|
- lib/ripper_ruby_parser/sexp_processor.rb
|
110
214
|
- lib/ripper_ruby_parser/syntax_error.rb
|
111
215
|
- lib/ripper_ruby_parser/unescape.rb
|
112
216
|
- lib/ripper_ruby_parser/version.rb
|
113
|
-
- test/end_to_end/comments_test.rb
|
114
|
-
- test/end_to_end/comparison_test.rb
|
115
|
-
- test/end_to_end/lib_comparison_test.rb
|
116
|
-
- test/end_to_end/line_numbering_test.rb
|
117
|
-
- test/end_to_end/samples_comparison_test.rb
|
118
|
-
- test/end_to_end/test_comparison_test.rb
|
119
|
-
- test/pt_testcase/pt_test.rb
|
120
|
-
- test/ripper_ruby_parser/commenting_ripper_parser_test.rb
|
121
|
-
- test/ripper_ruby_parser/parser_test.rb
|
122
|
-
- test/ripper_ruby_parser/sexp_handlers/assignment_test.rb
|
123
|
-
- test/ripper_ruby_parser/sexp_handlers/blocks_test.rb
|
124
|
-
- test/ripper_ruby_parser/sexp_handlers/conditionals_test.rb
|
125
|
-
- test/ripper_ruby_parser/sexp_handlers/literals_test.rb
|
126
|
-
- test/ripper_ruby_parser/sexp_handlers/loops_test.rb
|
127
|
-
- test/ripper_ruby_parser/sexp_handlers/method_calls_test.rb
|
128
|
-
- test/ripper_ruby_parser/sexp_handlers/methods_test.rb
|
129
|
-
- test/ripper_ruby_parser/sexp_handlers/operators_test.rb
|
130
|
-
- test/ripper_ruby_parser/sexp_processor_test.rb
|
131
|
-
- test/ripper_ruby_parser/version_test.rb
|
132
|
-
- test/samples/assignment.rb
|
133
|
-
- test/samples/comments.rb
|
134
|
-
- test/samples/conditionals.rb
|
135
|
-
- test/samples/lambdas.rb
|
136
|
-
- test/samples/loops.rb
|
137
|
-
- test/samples/misc.rb
|
138
|
-
- test/samples/number.rb
|
139
|
-
- test/samples/operators.rb
|
140
|
-
- test/samples/strings.rb
|
141
|
-
- test/test_helper.rb
|
142
217
|
homepage: http://www.github.com/mvz/ripper_ruby_parser
|
143
218
|
licenses:
|
144
219
|
- MIT
|
145
|
-
metadata:
|
146
|
-
|
220
|
+
metadata:
|
221
|
+
homepage_uri: http://www.github.com/mvz/ripper_ruby_parser
|
222
|
+
source_code_uri: https://github.com/mvz/ripper_ruby_parser
|
223
|
+
changelog_uri: https://github.com/mvz/ripper_ruby_parser/blob/master/CHANGELOG.md
|
224
|
+
post_install_message:
|
147
225
|
rdoc_options:
|
148
226
|
- "--main"
|
149
227
|
- README.md
|
@@ -153,44 +231,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
231
|
requirements:
|
154
232
|
- - ">="
|
155
233
|
- !ruby/object:Gem::Version
|
156
|
-
version: 2.
|
234
|
+
version: 2.5.0
|
157
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
236
|
requirements:
|
159
237
|
- - ">="
|
160
238
|
- !ruby/object:Gem::Version
|
161
239
|
version: '0'
|
162
240
|
requirements: []
|
163
|
-
rubygems_version: 3.
|
164
|
-
signing_key:
|
241
|
+
rubygems_version: 3.2.22
|
242
|
+
signing_key:
|
165
243
|
specification_version: 4
|
166
244
|
summary: Parse with Ripper, produce sexps that are compatible with RubyParser.
|
167
|
-
test_files:
|
168
|
-
- test/end_to_end/comments_test.rb
|
169
|
-
- test/end_to_end/comparison_test.rb
|
170
|
-
- test/end_to_end/lib_comparison_test.rb
|
171
|
-
- test/end_to_end/line_numbering_test.rb
|
172
|
-
- test/end_to_end/samples_comparison_test.rb
|
173
|
-
- test/end_to_end/test_comparison_test.rb
|
174
|
-
- test/pt_testcase/pt_test.rb
|
175
|
-
- test/ripper_ruby_parser/commenting_ripper_parser_test.rb
|
176
|
-
- test/ripper_ruby_parser/parser_test.rb
|
177
|
-
- test/ripper_ruby_parser/sexp_handlers/assignment_test.rb
|
178
|
-
- test/ripper_ruby_parser/sexp_handlers/blocks_test.rb
|
179
|
-
- test/ripper_ruby_parser/sexp_handlers/conditionals_test.rb
|
180
|
-
- test/ripper_ruby_parser/sexp_handlers/literals_test.rb
|
181
|
-
- test/ripper_ruby_parser/sexp_handlers/loops_test.rb
|
182
|
-
- test/ripper_ruby_parser/sexp_handlers/method_calls_test.rb
|
183
|
-
- test/ripper_ruby_parser/sexp_handlers/methods_test.rb
|
184
|
-
- test/ripper_ruby_parser/sexp_handlers/operators_test.rb
|
185
|
-
- test/ripper_ruby_parser/sexp_processor_test.rb
|
186
|
-
- test/ripper_ruby_parser/version_test.rb
|
187
|
-
- test/samples/assignment.rb
|
188
|
-
- test/samples/comments.rb
|
189
|
-
- test/samples/conditionals.rb
|
190
|
-
- test/samples/lambdas.rb
|
191
|
-
- test/samples/loops.rb
|
192
|
-
- test/samples/misc.rb
|
193
|
-
- test/samples/number.rb
|
194
|
-
- test/samples/operators.rb
|
195
|
-
- test/samples/strings.rb
|
196
|
-
- test/test_helper.rb
|
245
|
+
test_files: []
|
data/Rakefile
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "rake/clean"
|
4
|
-
require "bundler/gem_tasks"
|
5
|
-
require "rake/testtask"
|
6
|
-
|
7
|
-
namespace :test do
|
8
|
-
Rake::TestTask.new(:unit) do |t|
|
9
|
-
t.libs = ["lib"]
|
10
|
-
t.test_files = FileList["test/ripper_ruby_parser/**/*_test.rb"]
|
11
|
-
t.warning = true
|
12
|
-
end
|
13
|
-
|
14
|
-
Rake::TestTask.new(:end_to_end) do |t|
|
15
|
-
t.libs = ["lib"]
|
16
|
-
t.test_files = FileList["test/end_to_end/*_test.rb"]
|
17
|
-
t.warning = true
|
18
|
-
end
|
19
|
-
|
20
|
-
Rake::TestTask.new(:pt_testcase) do |t|
|
21
|
-
t.libs = ["lib"]
|
22
|
-
t.test_files = FileList["test/pt_testcase/*_test.rb"]
|
23
|
-
t.warning = true
|
24
|
-
end
|
25
|
-
|
26
|
-
desc "Run all three test suites"
|
27
|
-
task run: [:unit, :end_to_end, :pt_testcase]
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "Alias to test:run"
|
31
|
-
task test: "test:run"
|
32
|
-
|
33
|
-
task default: :test
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require File.expand_path("../test_helper.rb", File.dirname(__FILE__))
|
4
|
-
require "ruby_parser"
|
5
|
-
|
6
|
-
describe "Using RipperRubyParser and RubyParser" do
|
7
|
-
let :newparser do
|
8
|
-
RipperRubyParser::Parser.new
|
9
|
-
end
|
10
|
-
|
11
|
-
let :oldparser do
|
12
|
-
RubyParser.for_current_ruby
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "for a program with quite some comments" do
|
16
|
-
let :program do
|
17
|
-
<<-RUBY
|
18
|
-
# Foo
|
19
|
-
class Foo
|
20
|
-
# The foo
|
21
|
-
# method
|
22
|
-
def foo
|
23
|
-
bar # bar
|
24
|
-
# internal comment
|
25
|
-
end
|
26
|
-
|
27
|
-
def bar
|
28
|
-
baz
|
29
|
-
end
|
30
|
-
end
|
31
|
-
# Quux
|
32
|
-
module Qux
|
33
|
-
class Quux
|
34
|
-
def bar
|
35
|
-
end
|
36
|
-
def baz
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
RUBY
|
41
|
-
end
|
42
|
-
|
43
|
-
let :original do
|
44
|
-
oldparser.parse program
|
45
|
-
end
|
46
|
-
|
47
|
-
let :imitation do
|
48
|
-
newparser.parse program
|
49
|
-
end
|
50
|
-
|
51
|
-
it "gives the same result" do
|
52
|
-
_(imitation).must_equal original
|
53
|
-
end
|
54
|
-
|
55
|
-
it "gives the same result with comments" do
|
56
|
-
_(to_comments(imitation)).must_equal to_comments(original)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,104 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require File.expand_path("../test_helper.rb", File.dirname(__FILE__))
|
4
|
-
require "ruby_parser"
|
5
|
-
|
6
|
-
describe "Using RipperRubyParser and RubyParser" do
|
7
|
-
describe "for a simple well known program" do
|
8
|
-
let :program do
|
9
|
-
"puts 'Hello World'"
|
10
|
-
end
|
11
|
-
|
12
|
-
it "gives the same result with line numbers" do
|
13
|
-
_(program).must_be_parsed_as_before with_line_numbers: true
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "for a more complex program" do
|
18
|
-
let :program do
|
19
|
-
<<-RUBY
|
20
|
-
module Quux
|
21
|
-
class Foo
|
22
|
-
def bar
|
23
|
-
baz = 3
|
24
|
-
qux baz
|
25
|
-
end
|
26
|
-
def qux it
|
27
|
-
if it == 3
|
28
|
-
[1,2,3].map {|i| 2*i}
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
Quux::Foo.new.bar
|
35
|
-
RUBY
|
36
|
-
end
|
37
|
-
|
38
|
-
it "gives the same result" do
|
39
|
-
_(program).must_be_parsed_as_before
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "for an example with yield from Reek" do
|
44
|
-
let :program do
|
45
|
-
"def fred() yield(3) if block_given?; end"
|
46
|
-
end
|
47
|
-
|
48
|
-
it "gives the same result with line numbers" do
|
49
|
-
_(program).must_be_parsed_as_before with_line_numbers: true
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "for an example with floats from Reek" do
|
54
|
-
let :program do
|
55
|
-
<<-RUBY
|
56
|
-
def total_envy
|
57
|
-
fred = @item
|
58
|
-
total = 0
|
59
|
-
total += fred.price
|
60
|
-
total += fred.tax
|
61
|
-
total *= 1.15
|
62
|
-
end
|
63
|
-
RUBY
|
64
|
-
end
|
65
|
-
|
66
|
-
it "gives the same result" do
|
67
|
-
_(program).must_be_parsed_as_before
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
describe "for an example with operators and explicit block parameter from Reek" do
|
72
|
-
let :program do
|
73
|
-
<<-RUBY
|
74
|
-
def parse(arg, argv, &error)
|
75
|
-
if !(val = arg) and (argv.empty? or /\\A-/ =~ (val = argv[0]))
|
76
|
-
return nil, block, nil
|
77
|
-
end
|
78
|
-
opt = (val = parse_arg(val, &error))[1]
|
79
|
-
val = conv_arg(*val)
|
80
|
-
if opt and !arg
|
81
|
-
argv.shift
|
82
|
-
else
|
83
|
-
val[0] = nil
|
84
|
-
end
|
85
|
-
val
|
86
|
-
end
|
87
|
-
RUBY
|
88
|
-
end
|
89
|
-
|
90
|
-
it "gives the same result" do
|
91
|
-
_(program).must_be_parsed_as_before
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
describe "for an example of a complex regular expression from Reek" do
|
96
|
-
let :program do
|
97
|
-
"/(\#{@types})\\s*(\\w+)\\s*\\(([^)]*)\\)/"
|
98
|
-
end
|
99
|
-
|
100
|
-
it "gives the same result with line numbers" do
|
101
|
-
_(program).must_be_parsed_as_before with_line_numbers: true
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|