ruby2ruby 2.3.1 → 2.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7370313e3e5edb8daa2cbbf2fb09d692076c1b1d
4
- data.tar.gz: 449fd3f4262f9edd0e112b5c4d5be7c2fe2804d5
3
+ metadata.gz: 14e891234e3089376394e56c1a06d97198a44294
4
+ data.tar.gz: aa54d78c6ddefd682cf2dfce42c2b30a30882325
5
5
  SHA512:
6
- metadata.gz: a9894255594551689f3b4a0a6a1043fce8506d64ee10e89d5a77d0ea045b0ed373bcac2ea56ec06b7b23cbe80696bf78c1ad27053ddb566222fc3e8b6fb58c46
7
- data.tar.gz: 850e6856e5a10e73f013e44ecc1a0e9873149c393f1652e7afdabc84780d4d1495f841e3cf0eb5973c722c582f04411c978c20ffc3c5d2dcc6330529934d351e
6
+ metadata.gz: 1498c9b51e93f477b02d8114bbd1718bfbdce2f588681d1e8162d70297ce6ceeba34c5f2ced5bc689ecccc6ce0bbb058dc2695a6380c753af96ae15db35166ff
7
+ data.tar.gz: 9ecce60ed4b40ac244f786f3e3f6dbfaa4d111ce221328f66efbb0dcd4208c4e2b3752c920279012b4771333e9afb690198f141ae9c4b129dc146a1841f73811
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,13 @@
1
+ === 2.3.2 / 2016-11-30
2
+
3
+ * 5 bug fixes:
4
+
5
+ * FINALLY fixed a problem with escaping in dstrs. (nex3)
6
+ * Fix using match3 on LHS of call. (eqv)
7
+ * Fixed handling defn that starts w/ begin+rescue+other stuff. (eqv)
8
+ * Fixed return expressions with complex RHS. (eqv)
9
+ * Tweaked sexp_processor dependency to ~> 4.6 to sync them better
10
+
1
11
  === 2.3.1 / 2016-10-09
2
12
 
3
13
  * 1 minor enhancement:
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ Hoe.spec 'ruby2ruby' do
15
15
 
16
16
  license "MIT"
17
17
 
18
- dependency "sexp_processor", "~> 4.0"
18
+ dependency "sexp_processor", "~> 4.6"
19
19
  dependency "ruby_parser", "~> 3.1"
20
20
  end
21
21
 
@@ -31,7 +31,7 @@ end
31
31
  # Generate ruby code from a sexp.
32
32
 
33
33
  class Ruby2Ruby < SexpProcessor
34
- VERSION = "2.3.1" # :nodoc:
34
+ VERSION = "2.3.2" # :nodoc:
35
35
 
36
36
  # cutoff for one-liners
37
37
  LINE_LENGTH = 78
@@ -50,6 +50,7 @@ class Ruby2Ruby < SexpProcessor
50
50
  :flip3,
51
51
  :lasgn,
52
52
  :masgn,
53
+ :match3,
53
54
  :attrasgn,
54
55
  :op_asgn1,
55
56
  :op_asgn2,
@@ -407,11 +408,13 @@ class Ruby2Ruby < SexpProcessor
407
408
  body << process(exp.shift)
408
409
  end
409
410
 
411
+ simple = body.size <= 1
412
+
410
413
  body << "# do nothing" if body.empty?
411
414
  body = body.join("\n")
412
415
  body = body.lines.to_a[1..-2].join("\n") if
413
- body =~ /^\Abegin/ && body =~ /^end\z/
414
- body = indent(body) unless body =~ /(^|\n)rescue/
416
+ simple && body =~ /^\Abegin/ && body =~ /^end\z/
417
+ body = indent(body) unless simple && body =~ /(^|\n)rescue/
415
418
 
416
419
  return "#{comm}def #{name}#{args}\n#{body}\nend".gsub(/\n\s*\n+/, "\n")
417
420
  end
@@ -839,12 +842,14 @@ class Ruby2Ruby < SexpProcessor
839
842
  end
840
843
 
841
844
  def process_return(exp) # :nodoc:
842
- # HACK return "return" + (exp.empty? ? "" : " #{process exp.shift}")
843
-
844
845
  if exp.empty? then
845
- return "return"
846
+ "return"
846
847
  else
847
- return "return #{process exp.shift}"
848
+ rhs = exp.shift
849
+ rhs_type = rhs.sexp_type
850
+ rhs = process rhs
851
+ rhs = "(#{rhs})" if ASSIGN_NODES.include? rhs_type
852
+ "return #{rhs}"
848
853
  end
849
854
  end
850
855
 
@@ -1066,12 +1071,12 @@ class Ruby2Ruby < SexpProcessor
1066
1071
  # Utility method to escape something interpolated.
1067
1072
 
1068
1073
  def dthing_escape type, lit
1069
- lit = lit.gsub(/\n/, '\n')
1074
+ # TODO: this needs more testing
1070
1075
  case type
1071
1076
  when :dregx then
1072
1077
  lit.gsub(/(\A|[^\\])\//, '\1\/')
1073
1078
  when :dstr, :dsym then
1074
- lit.gsub(/"/, '\"')
1079
+ lit.dump[1..-2]
1075
1080
  when :dxstr then
1076
1081
  lit.gsub(/`/, '\`')
1077
1082
  else
@@ -83,56 +83,56 @@ class TestRuby2Ruby < R2RTestCase
83
83
  def test_hash_parens_str
84
84
  inn = s(:hash, s(:lit, :k), s(:str, "banana"))
85
85
  out = '{ :k => "banana" }'
86
- util_compare inn, out
86
+ assert_parse inn, out
87
87
  end
88
88
 
89
89
  def test_hash_parens_lit
90
90
  inn = s(:hash, s(:lit, :k), s(:lit, 0.07))
91
91
  out = "{ :k => 0.07 }"
92
- util_compare inn, out
92
+ assert_parse inn, out
93
93
  end
94
94
 
95
95
  def test_hash_parens_bool
96
96
  inn = s(:hash, s(:lit, :k), s(:true))
97
97
  out = "{ :k => true }"
98
- util_compare inn, out
98
+ assert_parse inn, out
99
99
  end
100
100
 
101
101
  def test_hash_parens_nil
102
102
  inn = s(:hash, s(:lit, :k), s(:nil))
103
103
  out = "{ :k => nil }"
104
- util_compare inn, out
104
+ assert_parse inn, out
105
105
  end
106
106
 
107
107
  def test_hash_parens_lvar
108
108
  inn = s(:hash, s(:lit, :k), s(:lvar, :x))
109
109
  out = "{ :k => x }"
110
- util_compare inn, out
110
+ assert_parse inn, out
111
111
  end
112
112
 
113
113
  def test_hash_parens_call
114
114
  inn = s(:hash, s(:lit, :k), s(:call, nil, :foo, s(:lit, :bar)))
115
115
  out = "{ :k => foo(:bar) }"
116
- util_compare inn, out
116
+ assert_parse inn, out
117
117
  end
118
118
 
119
119
  def test_hash_parens_iter
120
120
  iter = s(:iter, s(:call, nil, :foo), 0, s(:str, "bar"))
121
121
  inn = s(:hash, s(:lit, :k), iter)
122
122
  out = '{ :k => (foo { "bar" }) }'
123
- util_compare inn, out
123
+ assert_parse inn, out
124
124
  end
125
125
 
126
126
  def test_and_alias
127
127
  inn = s(:and, s(:true), s(:alias, s(:lit, :a), s(:lit, :b)))
128
128
  out = "true and (alias :a :b)"
129
- util_compare inn, out
129
+ assert_parse inn, out
130
130
  end
131
131
 
132
132
  def test_attr_reader_diff
133
133
  inn = s(:defn, :same, s(:args), s(:ivar, :@diff))
134
134
  out = "def same\n @diff\nend"
135
- util_compare inn, out
135
+ assert_parse inn, out
136
136
  end
137
137
 
138
138
  def test_attr_reader_same
@@ -140,13 +140,13 @@ class TestRuby2Ruby < R2RTestCase
140
140
 
141
141
  inn = s(:defn, :same, s(:args), s(:ivar, :@same))
142
142
  out = "attr_reader :same"
143
- util_compare inn, out
143
+ assert_parse inn, out
144
144
  end
145
145
 
146
146
  def test_attr_reader_double
147
147
  inn = s(:defn, :same, s(:args), s(:ivar, :@same), s(:ivar, :@diff))
148
148
  out = "def same\n @same\n @diff\nend"
149
- util_compare inn, out
149
+ assert_parse inn, out
150
150
  end
151
151
 
152
152
  def test_attr_reader_same_name_diff_body
@@ -154,26 +154,126 @@ class TestRuby2Ruby < R2RTestCase
154
154
 
155
155
  inn = s(:defn, :same, s(:args), s(:not, s(:ivar, :@same)))
156
156
  out = "def same\n (not @same)\nend"
157
- util_compare inn, out
157
+ assert_parse inn, out
158
158
  end
159
159
 
160
160
  def test_attr_writer_diff
161
161
  inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@diff, s(:lvar, :o)))
162
162
  out = "def same=(o)\n @diff = o\nend"
163
- util_compare inn, out
163
+ assert_parse inn, out
164
+ end
165
+
166
+ def assert_str exp, src
167
+ assert_equal s(:str, exp), RubyParser.new.process(src)
168
+ end
169
+
170
+ def assert_dstr exp, int, src
171
+ assert_equal s(:dstr, exp, s(:evstr, int).compact), RubyParser.new.process(src)
172
+ end
173
+
174
+ def assert_r2r exp, sexp
175
+ assert_equal exp, Ruby2Ruby.new.process(sexp)
176
+ end
177
+
178
+ def assert_rt src, exp=src.dup
179
+ assert_equal exp, Ruby2Ruby.new.process(RubyParser.new.parse(src))
180
+ end
181
+
182
+ def test_bug_033
183
+ # gentle reminder to keep some sanity
184
+ #
185
+ # Use %q("...") for raw input strings
186
+ # Use %q(...) for raw output to avoid double-\'s
187
+ # Use %(...) for output strings
188
+ #
189
+ # don't use '...' at all
190
+ # only use "..." within sexps
191
+
192
+ # "\t"
193
+ assert_str %(\t), %q("\t")
194
+ assert_r2r %q("\\t"), s(:str, "\t")
195
+ assert_rt %q("\t")
196
+
197
+ # "\\t"
198
+ assert_str %(\t), %q("\\t")
199
+ assert_r2r %q("\\t"), s(:str, "\t")
200
+ assert_rt %q("\\t")
201
+
202
+ # "\\\\t"
203
+ assert_str %(\\t), %q("\\\\t")
204
+ assert_r2r %q("\\\\t"), s(:str, "\\t")
205
+ assert_rt %q("\\\\t")
206
+
207
+ # "\t#{}"
208
+ assert_dstr %(\t), nil, %q("\t#{}")
209
+ assert_r2r %q("\t#{}"), s(:dstr, "\t", s(:evstr))
210
+ assert_rt %q("\t#{}")
211
+
212
+ # "\\t#{}"
213
+ assert_dstr %(\t), nil, %q("\\t#{}")
214
+ assert_r2r %q("\\t#{}"), s(:dstr, "\t", s(:evstr))
215
+ assert_rt %q("\\t#{}")
216
+
217
+ # "\\\\t#{}"
218
+ assert_dstr %(\\t), nil, %q("\\\\t#{}")
219
+ assert_r2r %q("\\\\t#{}"), s(:dstr, "\\t", s(:evstr))
220
+ assert_rt %q("\\\\t#{}")
221
+ end
222
+
223
+ def test_bug_043
224
+ inn = s(:defn, :check, s(:args),
225
+ s(:rescue,
226
+ s(:call, nil, :foo),
227
+ s(:resbody, s(:array), s(:call, nil, :bar), s(:call, nil, :bar))),
228
+ s(:call, nil, :bar),
229
+ s(:if,
230
+ s(:call, nil, :foo),
231
+ s(:return, s(:call, nil, :bar)),
232
+ s(:call, nil, :bar)))
233
+
234
+ out = "def check\n begin\n foo\n rescue\n bar\n bar\n end\n bar\n if foo then\n return bar\n else\n bar\n end\nend"
235
+
236
+ assert_parse inn, out
237
+ end
238
+
239
+ def test_bug_044
240
+ inn = s(:if,
241
+ s(:call,
242
+ s(:match3, s(:lit, /a/), s(:call, nil, :foo)),
243
+ :or,
244
+ s(:call, nil, :bar)),
245
+ s(:call, nil, :puts, s(:call, nil, :bar)),
246
+ nil)
247
+ out = "puts(bar) if (foo =~ /a/).or(bar)"
248
+
249
+ assert_parse inn, out
250
+ end
251
+
252
+ def test_bug_045
253
+ # return foo.baaaaaaar ? ::B.newsss(true) : ::B.newadsfasdfasdfasdfasdsssss(false)
254
+
255
+ inn = s(:return,
256
+ s(:if,
257
+ s(:call, s(:call, nil, :foo), :baaaaaaar),
258
+ s(:call, s(:colon3, :B), :newsss, s(:true)),
259
+ s(:call, s(:colon3, :B), :newadsfasdfasdfasdfasdsssss, s(:false))))
260
+
261
+ out = "return (if foo.baaaaaaar then\n ::B.newsss(true)\nelse\n ::B.newadsfasdfasdfasdfasdsssss(false)\nend)"
262
+
263
+ assert_parse inn, out
164
264
  end
165
265
 
166
266
  def test_attr_writer_double
167
267
  inn = s(:defn, :same=, s(:args, :o),
168
268
  s(:iasgn, :@same, s(:lvar, :o)), s(:iasgn, :@diff, s(:lvar, :o)))
169
269
  out = "def same=(o)\n @same = o\n @diff = o\nend"
170
- util_compare inn, out
270
+ assert_parse inn, out
171
271
  end
172
272
 
173
273
  def test_attr_writer_same_name_diff_body
174
274
  inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@same, s(:lit, 42)))
175
275
  out = "def same=(o)\n @same = 42\nend"
176
- util_compare inn, out
276
+ assert_parse inn, out
177
277
  end
178
278
 
179
279
  def test_attr_writer_same
@@ -181,7 +281,7 @@ class TestRuby2Ruby < R2RTestCase
181
281
 
182
282
  inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@same , s(:lvar, :o)))
183
283
  out = "attr_writer :same"
184
- util_compare inn, out
284
+ assert_parse inn, out
185
285
  end
186
286
 
187
287
  def test_dregx_slash
@@ -189,32 +289,32 @@ class TestRuby2Ruby < R2RTestCase
189
289
 
190
290
  inn = util_thingy(:dregx)
191
291
  out = '/a"b#{(1 + 1)}c"d\/e/'
192
- util_compare inn, out, /a"b2c"d\/e/
292
+ assert_parse inn, out, /a"b2c"d\/e/
193
293
  end
194
294
 
195
295
  def test_dstr_quote
196
296
  inn = util_thingy(:dstr)
197
297
  out = '"a\"b#{(1 + 1)}c\"d/e"'
198
- util_compare inn, out, 'a"b2c"d/e'
298
+ assert_parse inn, out, 'a"b2c"d/e'
199
299
  end
200
300
 
201
301
  def test_dsym_quote
202
302
  inn = util_thingy(:dsym)
203
303
  out = ':"a\"b#{(1 + 1)}c\"d/e"'
204
- util_compare inn, out, :'a"b2c"d/e'
304
+ assert_parse inn, out, :'a"b2c"d/e'
205
305
  end
206
306
 
207
307
  def test_lit_regexp_slash
208
308
  do_not_check_sexp! # dunno why on this one
209
309
 
210
- util_compare s(:lit, /blah\/blah/), '/blah\/blah/', /blah\/blah/
310
+ assert_parse s(:lit, /blah\/blah/), '/blah\/blah/', /blah\/blah/
211
311
  end
212
312
 
213
313
  def test_call_kwsplat
214
314
  inn = s(:call, nil, :test_splat, s(:hash, s(:kwsplat, s(:call, nil, :testing))))
215
315
  out = "test_splat(**testing)"
216
316
 
217
- util_compare inn, out
317
+ assert_parse inn, out
218
318
  end
219
319
 
220
320
  def test_call_arg_assoc_kwsplat
@@ -223,14 +323,14 @@ class TestRuby2Ruby < R2RTestCase
223
323
  s(:hash, s(:lit, :kw), s(:lit, 2), s(:kwsplat, s(:lit, 3))))
224
324
  out = "f(1, :kw => 2, **3)"
225
325
 
226
- util_compare inn, out
326
+ assert_parse inn, out
227
327
  end
228
328
 
229
329
  def test_call_kwsplat_x
230
330
  inn = s(:call, nil, :a, s(:hash, s(:kwsplat, s(:lit, 1))))
231
331
  out = "a(**1)"
232
332
 
233
- util_compare inn, out
333
+ assert_parse inn, out
234
334
  end
235
335
 
236
336
  def test_defn_kwargs
@@ -239,7 +339,7 @@ class TestRuby2Ruby < R2RTestCase
239
339
  s(:nil))
240
340
  out = "def initialize(arg, keyword: nil, **args)\n # do nothing\nend"
241
341
 
242
- util_compare inn, out
342
+ assert_parse inn, out
243
343
  end
244
344
 
245
345
  def test_defn_kwargs2
@@ -251,20 +351,20 @@ class TestRuby2Ruby < R2RTestCase
251
351
  s(:nil))
252
352
  out = "def initialize(arg, kw1: nil, kw2: nil, **args)\n # do nothing\nend"
253
353
 
254
- util_compare inn, out
354
+ assert_parse inn, out
255
355
  end
256
356
 
257
357
  def test_call_self_index
258
- util_compare s(:call, nil, :[], s(:lit, 42)), "self[42]"
358
+ assert_parse s(:call, nil, :[], s(:lit, 42)), "self[42]"
259
359
  end
260
360
 
261
361
  def test_call_self_index_equals
262
- util_compare(s(:attrasgn, s(:self), :[]=, s(:lit, 42), s(:lit, 24)),
362
+ assert_parse(s(:attrasgn, s(:self), :[]=, s(:lit, 42), s(:lit, 24)),
263
363
  "self[42] = 24")
264
364
  end
265
365
 
266
366
  def test_call_self_index_equals_array
267
- util_compare(s(:attrasgn, s(:self), :[]=, s(:lit, 1), s(:lit, 2), s(:lit, 3)),
367
+ assert_parse(s(:attrasgn, s(:self), :[]=, s(:lit, 1), s(:lit, 2), s(:lit, 3)),
268
368
  "self[1, 2] = 3")
269
369
  end
270
370
 
@@ -274,7 +374,7 @@ class TestRuby2Ruby < R2RTestCase
274
374
  s(:call, nil, :b))
275
375
  out = "method({ :a => 1 }, b)"
276
376
 
277
- util_compare inn, out
377
+ assert_parse inn, out
278
378
  end
279
379
 
280
380
  def test_call_arglist_hash_first_last
@@ -284,7 +384,7 @@ class TestRuby2Ruby < R2RTestCase
284
384
  s(:hash, s(:lit, :c), s(:lit, 1)))
285
385
  out = "method({ :a => 1 }, b, :c => 1)"
286
386
 
287
- util_compare inn, out
387
+ assert_parse inn, out
288
388
  end
289
389
 
290
390
  def test_call_arglist_hash_last
@@ -293,7 +393,7 @@ class TestRuby2Ruby < R2RTestCase
293
393
  s(:hash, s(:lit, :a), s(:lit, 1)))
294
394
  out = "method(b, :a => 1)"
295
395
 
296
- util_compare inn, out
396
+ assert_parse inn, out
297
397
  end
298
398
 
299
399
  def test_call_arglist_if
@@ -306,7 +406,7 @@ class TestRuby2Ruby < R2RTestCase
306
406
  s(:call, nil, :d)))
307
407
 
308
408
  out = "(a + (b ? (c) : (d)))"
309
- util_compare inn, out
409
+ assert_parse inn, out
310
410
  end
311
411
 
312
412
  def test_defn_kwsplat
@@ -337,7 +437,7 @@ class TestRuby2Ruby < R2RTestCase
337
437
  s(:evstr, s(:lvar, :b))))
338
438
  out = 'nil.x { |(a, b)| "#{a}=#{b}" }'
339
439
 
340
- util_compare inn, out
440
+ assert_parse inn, out
341
441
  end
342
442
 
343
443
  def test_masgn_wtf
@@ -357,7 +457,7 @@ class TestRuby2Ruby < R2RTestCase
357
457
 
358
458
  out = "k, v = *line.split(/\\=/, 2)\nself[k] = v.strip\n"
359
459
 
360
- util_compare inn, out
460
+ assert_parse inn, out
361
461
  end
362
462
 
363
463
  def test_masgn_splat_wtf
@@ -369,14 +469,14 @@ class TestRuby2Ruby < R2RTestCase
369
469
  :split,
370
470
  s(:lit, /\=/), s(:lit, 2))))
371
471
  out = 'k, v = *line.split(/\\=/, 2)'
372
- util_compare inn, out
472
+ assert_parse inn, out
373
473
  end
374
474
 
375
475
  def test_match3_asgn
376
476
  inn = s(:match3, s(:lit, //), s(:lasgn, :y, s(:call, nil, :x)))
377
477
  out = "(y = x) =~ //"
378
478
  # "y = x =~ //", which matches on x and assigns to y (not what sexp says).
379
- util_compare inn, out
479
+ assert_parse inn, out
380
480
  end
381
481
 
382
482
  def test_safe_attrasgn
@@ -387,7 +487,7 @@ class TestRuby2Ruby < R2RTestCase
387
487
 
388
488
  out = "x&.y = 1"
389
489
 
390
- util_compare inn, out
490
+ assert_parse inn, out
391
491
  end
392
492
 
393
493
  def test_safe_call
@@ -399,7 +499,7 @@ class TestRuby2Ruby < R2RTestCase
399
499
  s(:lit, 1))
400
500
 
401
501
  out ="x&.y&.z(1)"
402
- util_compare inn, out
502
+ assert_parse inn, out
403
503
  end
404
504
 
405
505
  def test_safe_call_binary
@@ -409,7 +509,7 @@ class TestRuby2Ruby < R2RTestCase
409
509
  s(:lit, 1))
410
510
 
411
511
  out = "x&.>(1)"
412
- util_compare inn, out
512
+ assert_parse inn, out
413
513
  end
414
514
 
415
515
  def test_safe_op_asgn
@@ -420,7 +520,7 @@ class TestRuby2Ruby < R2RTestCase
420
520
  :+)
421
521
 
422
522
  out = "x&.y += z(1)"
423
- util_compare inn, out
523
+ assert_parse inn, out
424
524
  end
425
525
 
426
526
  def test_safe_op_asgn2
@@ -431,7 +531,7 @@ class TestRuby2Ruby < R2RTestCase
431
531
  s(:lit, 1))
432
532
 
433
533
  out = "x&.y ||= 1"
434
- util_compare inn, out
534
+ assert_parse inn, out
435
535
  end
436
536
 
437
537
  def test_splat_call
@@ -443,7 +543,7 @@ class TestRuby2Ruby < R2RTestCase
443
543
  s(:lit, /\=/), s(:lit, 2))))
444
544
 
445
545
  out = 'x(*line.split(/\=/, 2))'
446
- util_compare inn, out
546
+ assert_parse inn, out
447
547
  end
448
548
 
449
549
  def test_resbody_block
@@ -455,7 +555,7 @@ class TestRuby2Ruby < R2RTestCase
455
555
  s(:call, nil, :x3)))
456
556
 
457
557
  out = "begin\n x1\nrescue\n x2\n x3\nend"
458
- util_compare inn, out
558
+ assert_parse inn, out
459
559
  end
460
560
 
461
561
  def test_resbody_short_with_begin_end
@@ -464,7 +564,7 @@ class TestRuby2Ruby < R2RTestCase
464
564
  s(:call, nil, :blah),
465
565
  s(:resbody, s(:array), s(:array)))
466
566
  out = "blah rescue []"
467
- util_compare inn, out
567
+ assert_parse inn, out
468
568
  end
469
569
 
470
570
  def test_resbody_short_with_begin_end_multiple
@@ -475,7 +575,7 @@ class TestRuby2Ruby < R2RTestCase
475
575
  s(:call, nil, :log),
476
576
  s(:call, nil, :raise)))
477
577
  out = "begin\n blah\nrescue\n log\n raise\nend"
478
- util_compare inn, out
578
+ assert_parse inn, out
479
579
  end
480
580
 
481
581
  def test_resbody_short_with_defn_multiple
@@ -489,7 +589,7 @@ class TestRuby2Ruby < R2RTestCase
489
589
  s(:call, nil, :log),
490
590
  s(:call, nil, :raise))))
491
591
  out = "def foo\n a = 1\nrescue\n log\n raise\nend"
492
- util_compare inn, out
592
+ assert_parse inn, out
493
593
  end
494
594
 
495
595
  def test_regexp_options
@@ -501,7 +601,7 @@ class TestRuby2Ruby < R2RTestCase
501
601
  4),
502
602
  s(:str, "a"))
503
603
  out = '"a" =~ /abc#{x}def/m'
504
- util_compare inn, out
604
+ assert_parse inn, out
505
605
  end
506
606
 
507
607
  def test_resbody_short_with_rescue_args
@@ -509,7 +609,7 @@ class TestRuby2Ruby < R2RTestCase
509
609
  s(:call, nil, :blah),
510
610
  s(:resbody, s(:array, s(:const, :A), s(:const, :B)), s(:array)))
511
611
  out = "begin\n blah\nrescue A, B\n []\nend"
512
- util_compare inn, out
612
+ assert_parse inn, out
513
613
  end
514
614
 
515
615
  def test_call_binary_call_with_hash_arg
@@ -525,7 +625,7 @@ class TestRuby2Ruby < R2RTestCase
525
625
 
526
626
  out = "(args << { :key => 24 }) if 42"
527
627
 
528
- util_compare inn, out
628
+ assert_parse inn, out
529
629
  end
530
630
 
531
631
  def test_binary_operators
@@ -533,7 +633,7 @@ class TestRuby2Ruby < R2RTestCase
533
633
  Ruby2Ruby::BINARY.each do |op|
534
634
  inn = s(:call, s(:lit, 1), op, s(:lit, 2))
535
635
  out = "(1 #{op} 2)"
536
- util_compare inn, out
636
+ assert_parse inn, out
537
637
  end
538
638
  end
539
639
 
@@ -541,20 +641,20 @@ class TestRuby2Ruby < R2RTestCase
541
641
  Ruby2Ruby::BINARY.each do |op|
542
642
  inn = s(:call, s(:lvar, :x), op, s(:lit, 2), s(:lit, 3))
543
643
  out = "x.#{op}(2, 3)"
544
- util_compare inn, out
644
+ assert_parse inn, out
545
645
  end
546
646
  end
547
647
 
548
648
  def test_call_empty_hash
549
649
  inn = s(:call, nil, :foo, s(:hash))
550
650
  out = "foo({})"
551
- util_compare inn, out
651
+ assert_parse inn, out
552
652
  end
553
653
 
554
654
  def test_if_empty
555
655
  inn = s(:if, s(:call, nil, :x), nil, nil)
556
656
  out = "if x then\n # do nothing\nend"
557
- util_compare inn, out
657
+ assert_parse inn, out
558
658
  end
559
659
 
560
660
  def test_interpolation_and_escapes
@@ -565,60 +665,60 @@ class TestRuby2Ruby < R2RTestCase
565
665
  s(:str, "m"),
566
666
  s(:evstr, s(:call, nil, :message)),
567
667
  s(:str, "\e[0m ")))
568
- out = "log_entry = \" \e[#\{message_color}m#\{message}\e[0m \""
668
+ out = "log_entry = \" \\e[#\{message_color}m#\{message}\\e[0m \""
569
669
 
570
- util_compare inn, out
670
+ assert_parse inn, out
571
671
  end
572
672
 
573
673
  def test_class_comments
574
674
  inn = s(:class, :Z, nil)
575
675
  inn.comments = "# x\n# y\n"
576
676
  out = "# x\n# y\nclass Z\nend"
577
- util_compare inn, out
677
+ assert_parse inn, out
578
678
  end
579
679
 
580
680
  def test_module_comments
581
681
  inn = s(:module, :Z)
582
682
  inn.comments = "# x\n# y\n"
583
683
  out = "# x\n# y\nmodule Z\nend"
584
- util_compare inn, out
684
+ assert_parse inn, out
585
685
  end
586
686
 
587
687
  def test_method_comments
588
688
  inn = s(:defn, :z, s(:args), s(:nil))
589
689
  inn.comments = "# x\n# y\n"
590
690
  out = "# x\n# y\ndef z\n # do nothing\nend"
591
- util_compare inn, out
691
+ assert_parse inn, out
592
692
  end
593
693
 
594
694
  def test_basic_ensure
595
695
  inn = s(:ensure, s(:lit, 1), s(:lit, 2))
596
696
  out = "begin\n 1\nensure\n 2\nend"
597
- util_compare inn, out
697
+ assert_parse inn, out
598
698
  end
599
699
 
600
700
  def test_nested_ensure
601
701
  inn = s(:ensure, s(:lit, 1), s(:ensure, s(:lit, 2), s(:lit, 3)))
602
702
  out = "begin\n 1\nensure\n begin\n 2\n ensure\n 3\n end\nend"
603
- util_compare inn, out
703
+ assert_parse inn, out
604
704
  end
605
705
 
606
706
  def test_nested_rescue
607
707
  inn = s(:ensure, s(:lit, 1), s(:rescue, s(:lit, 2), s(:resbody, s(:array), s(:lit, 3))))
608
708
  out = "begin\n 1\nensure\n 2 rescue 3\nend"
609
- util_compare inn, out
709
+ assert_parse inn, out
610
710
  end
611
711
 
612
712
  def test_nested_rescue_exception
613
713
  inn = s(:ensure, s(:lit, 1), s(:rescue, s(:lit, 2), s(:resbody, s(:array, s(:const, :Exception)), s(:lit, 3))))
614
714
  out = "begin\n 1\nensure\n begin\n 2\n rescue Exception\n 3\n end\nend"
615
- util_compare inn, out
715
+ assert_parse inn, out
616
716
  end
617
717
 
618
718
  def test_nested_rescue_exception2
619
719
  inn = s(:ensure, s(:rescue, s(:lit, 2), s(:resbody, s(:array, s(:const, :Exception)), s(:lit, 3))), s(:lit, 1))
620
720
  out = "begin\n 2\nrescue Exception\n 3\nensure\n 1\nend"
621
- util_compare inn, out
721
+ assert_parse inn, out
622
722
  end
623
723
 
624
724
  def test_op_asgn
@@ -629,7 +729,7 @@ class TestRuby2Ruby < R2RTestCase
629
729
  :+)
630
730
 
631
731
  out = "x.y += z(1)"
632
- util_compare inn, out
732
+ assert_parse inn, out
633
733
  end
634
734
 
635
735
  def test_rescue_block
@@ -639,7 +739,7 @@ class TestRuby2Ruby < R2RTestCase
639
739
  s(:call, nil, :beta),
640
740
  s(:call, nil, :gamma)))
641
741
  out = "begin\n alpha\nrescue\n beta\n gamma\nend"
642
- util_compare inn, out
742
+ assert_parse inn, out
643
743
  end
644
744
 
645
745
  def test_array_adds_parens_around_rescue
@@ -648,7 +748,7 @@ class TestRuby2Ruby < R2RTestCase
648
748
  s(:rescue, s(:call, nil, :b), s(:resbody, s(:array), s(:call, nil, :c))))
649
749
  out = "[a, (b rescue c)]"
650
750
 
651
- util_compare inn, out
751
+ assert_parse inn, out
652
752
  end
653
753
 
654
754
  def test_call_arglist_rescue
@@ -659,7 +759,7 @@ class TestRuby2Ruby < R2RTestCase
659
759
  s(:call, nil, :a),
660
760
  s(:resbody, s(:array), s(:call, nil, :b))))
661
761
  out = "method((a rescue b))"
662
- util_compare inn, out
762
+ assert_parse inn, out
663
763
  end
664
764
 
665
765
  def test_unless_vs_if_not
@@ -667,14 +767,14 @@ class TestRuby2Ruby < R2RTestCase
667
767
  rb2 = "a if (not b)"
668
768
  rb3 = "a if ! b"
669
769
 
670
- util_compare Ruby18Parser.new.parse(rb1), rb1
671
- util_compare Ruby19Parser.new.parse(rb1), rb1
770
+ assert_parse Ruby18Parser.new.parse(rb1), rb1
771
+ assert_parse Ruby19Parser.new.parse(rb1), rb1
672
772
 
673
- util_compare Ruby18Parser.new.parse(rb2), rb1
674
- util_compare Ruby19Parser.new.parse(rb2), rb2
773
+ assert_parse Ruby18Parser.new.parse(rb2), rb1
774
+ assert_parse Ruby19Parser.new.parse(rb2), rb2
675
775
 
676
- util_compare Ruby18Parser.new.parse(rb3), rb1
677
- util_compare Ruby19Parser.new.parse(rb3), rb2
776
+ assert_parse Ruby18Parser.new.parse(rb3), rb1
777
+ assert_parse Ruby19Parser.new.parse(rb3), rb2
678
778
  end
679
779
 
680
780
  def assert_parse sexp, expected_ruby, expected_eval = nil
@@ -684,7 +784,6 @@ class TestRuby2Ruby < R2RTestCase
684
784
  assert_equal expected_ruby, @processor.process(sexp), "sexp -> ruby"
685
785
  assert_equal expected_eval, eval(expected_ruby) if expected_eval
686
786
  end
687
- alias util_compare assert_parse
688
787
 
689
788
  def util_thingy(type)
690
789
  s(type,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby2ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -30,7 +30,7 @@ cert_chain:
30
30
  E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
31
31
  fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
32
32
  -----END CERTIFICATE-----
33
- date: 2016-10-09 00:00:00.000000000 Z
33
+ date: 2016-12-01 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: sexp_processor
@@ -38,14 +38,14 @@ dependencies:
38
38
  requirements:
39
39
  - - ~>
40
40
  - !ruby/object:Gem::Version
41
- version: '4.0'
41
+ version: '4.6'
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ~>
47
47
  - !ruby/object:Gem::Version
48
- version: '4.0'
48
+ version: '4.6'
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: ruby_parser
51
51
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file