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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +76 -0
  3. data/README.md +6 -4
  4. data/lib/ripper_ruby_parser/commenting_ripper_parser.rb +24 -12
  5. data/lib/ripper_ruby_parser/sexp_handlers.rb +2 -0
  6. data/lib/ripper_ruby_parser/sexp_handlers/assignment.rb +9 -4
  7. data/lib/ripper_ruby_parser/sexp_handlers/blocks.rb +40 -52
  8. data/lib/ripper_ruby_parser/sexp_handlers/conditionals.rb +17 -19
  9. data/lib/ripper_ruby_parser/sexp_handlers/helper_methods.rb +35 -2
  10. data/lib/ripper_ruby_parser/sexp_handlers/literals.rb +15 -242
  11. data/lib/ripper_ruby_parser/sexp_handlers/method_calls.rb +9 -5
  12. data/lib/ripper_ruby_parser/sexp_handlers/methods.rb +22 -17
  13. data/lib/ripper_ruby_parser/sexp_handlers/operators.rb +3 -3
  14. data/lib/ripper_ruby_parser/sexp_handlers/string_literals.rb +256 -0
  15. data/lib/ripper_ruby_parser/sexp_processor.rb +12 -56
  16. data/lib/ripper_ruby_parser/unescape.rb +89 -43
  17. data/lib/ripper_ruby_parser/version.rb +1 -1
  18. metadata +125 -76
  19. data/Rakefile +0 -33
  20. data/test/end_to_end/comments_test.rb +0 -59
  21. data/test/end_to_end/comparison_test.rb +0 -104
  22. data/test/end_to_end/lib_comparison_test.rb +0 -29
  23. data/test/end_to_end/line_numbering_test.rb +0 -31
  24. data/test/end_to_end/samples_comparison_test.rb +0 -13
  25. data/test/end_to_end/test_comparison_test.rb +0 -32
  26. data/test/pt_testcase/pt_test.rb +0 -44
  27. data/test/ripper_ruby_parser/commenting_ripper_parser_test.rb +0 -200
  28. data/test/ripper_ruby_parser/parser_test.rb +0 -553
  29. data/test/ripper_ruby_parser/sexp_handlers/assignment_test.rb +0 -613
  30. data/test/ripper_ruby_parser/sexp_handlers/blocks_test.rb +0 -679
  31. data/test/ripper_ruby_parser/sexp_handlers/conditionals_test.rb +0 -536
  32. data/test/ripper_ruby_parser/sexp_handlers/literals_test.rb +0 -1106
  33. data/test/ripper_ruby_parser/sexp_handlers/loops_test.rb +0 -209
  34. data/test/ripper_ruby_parser/sexp_handlers/method_calls_test.rb +0 -267
  35. data/test/ripper_ruby_parser/sexp_handlers/methods_test.rb +0 -421
  36. data/test/ripper_ruby_parser/sexp_handlers/operators_test.rb +0 -399
  37. data/test/ripper_ruby_parser/sexp_processor_test.rb +0 -303
  38. data/test/ripper_ruby_parser/version_test.rb +0 -7
  39. data/test/samples/assignment.rb +0 -17
  40. data/test/samples/comments.rb +0 -13
  41. data/test/samples/conditionals.rb +0 -23
  42. data/test/samples/lambdas.rb +0 -5
  43. data/test/samples/loops.rb +0 -36
  44. data/test/samples/misc.rb +0 -281
  45. data/test/samples/number.rb +0 -7
  46. data/test/samples/operators.rb +0 -18
  47. data/test/samples/strings.rb +0 -147
  48. data/test/test_helper.rb +0 -107
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RipperRubyParser
4
- VERSION = "1.7.0"
4
+ VERSION = "1.9.0"
5
5
  end
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.7.0
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: 2019-11-01 00:00:00.000000000 Z
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.14.0
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.14.0
152
+ version: 3.17.0
69
153
  - !ruby/object:Gem::Dependency
70
- name: simplecov
154
+ name: sexp_processor
71
155
  requirement: !ruby/object:Gem::Requirement
72
156
  requirements:
73
157
  - - ">="
74
158
  - !ruby/object:Gem::Version
75
- version: '0'
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: '0'
83
- description: |2
84
- RipperRubyParser is a parser for Ruby based on Ripper that aims to be a
85
- drop-in replacement for RubyParser.
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
- post_install_message:
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.4.0
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.0.6
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