ripper_ruby_parser 1.7.0 → 1.9.0

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