ruby2ruby 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9d6a4ff1d7f84562a2721483c03a910d5f07bf9c
4
+ data.tar.gz: adcb9034137fa7ccf623b6a78a4acbc5e7904a3e
5
+ SHA512:
6
+ metadata.gz: a67c1295e150cdeeb32adae504e17fa9abfbbeaf09f5a07586ad8ef2401224955d14f0bff25927617e9106e3b8f851b1ca822d650580a7db6d57864cd19c14a0
7
+ data.tar.gz: 9a1c8c80ceb85c87dcde08f3c0a265ff3f297a0d057d46096c7071f815e457ff824e8a3eff5b5081a323330b57ddefadca977cce29a5e9f4fb33b3efd15984bf
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,16 @@
1
+ === 2.0.7 / 2013-12-13
2
+
3
+ * 4 minor enhancements:
4
+
5
+ * Add != to list of binary operators. (camertron) *le sigh*
6
+ * Clean out cruft from process_masgn that I can't reproduce anymore.
7
+ * Extend process_args to deal with masgn (eg: a.b { |(c, d)| ... }).
8
+ * Extend process_masgn to deal with both sexps and var lists.
9
+
10
+ * 1 bug fix:
11
+
12
+ * Ensure proper parens on rescue subexpressions. (Bocete)
13
+
1
14
  === 2.0.6 / 2013-06-20
2
15
 
3
16
  * 2 bug fixes:
@@ -29,13 +29,13 @@ end
29
29
  # Generate ruby code from a sexp.
30
30
 
31
31
  class Ruby2Ruby < SexpProcessor
32
- VERSION = "2.0.6" # :nodoc:
32
+ VERSION = "2.0.7" # :nodoc:
33
33
 
34
34
  # cutoff for one-liners
35
35
  LINE_LENGTH = 78
36
36
 
37
37
  # binary operation messages
38
- BINARY = [:<=>, :==, :<, :>, :<=, :>=, :-, :+, :*, :/, :%, :<<, :>>, :**]
38
+ BINARY = [:<=>, :==, :<, :>, :<=, :>=, :-, :+, :*, :/, :%, :<<, :>>, :**, :'!=']
39
39
 
40
40
  ##
41
41
  # Nodes that represent assignment and probably need () around them.
@@ -55,6 +55,7 @@ class Ruby2Ruby < SexpProcessor
55
55
  :op_asgn_or,
56
56
  :return,
57
57
  :if, # HACK
58
+ :rescue,
58
59
  ]
59
60
 
60
61
  def initialize # :nodoc:
@@ -83,7 +84,10 @@ class Ruby2Ruby < SexpProcessor
83
84
  def process_arglist(exp) # custom made node # :nodoc:
84
85
  code = []
85
86
  until exp.empty? do
86
- code << process(exp.shift)
87
+ arg = exp.shift
88
+ to_wrap = arg.first == :rescue
89
+ arg_code = process arg
90
+ code << (to_wrap ? "(#{arg_code})" : arg_code)
87
91
  end
88
92
  code.join ', '
89
93
  end
@@ -100,6 +104,8 @@ class Ruby2Ruby < SexpProcessor
100
104
  case arg.first
101
105
  when :lasgn then
102
106
  args << process(arg)
107
+ when :masgn then
108
+ args << process(arg)
103
109
  else
104
110
  raise "unknown arg type #{arg.first.inspect}"
105
111
  end
@@ -597,40 +603,43 @@ class Ruby2Ruby < SexpProcessor
597
603
  end
598
604
 
599
605
  def process_masgn(exp) # :nodoc:
600
- lhs = exp.shift
601
- rhs = exp.empty? ? nil : exp.shift
602
-
603
- case lhs.first
604
- when :array then
605
- lhs.shift
606
- lhs = lhs.map do |l|
607
- case l.first
608
- when :masgn then
609
- "(#{process(l)})"
610
- else
611
- process(l)
606
+ # s(:masgn, s(:array, s(:lasgn, :var), ...), s(:to_ary, <val>, ...))
607
+ # s(:iter, <call>, s(:args, s(:masgn, :a, :b)), <body>)
608
+
609
+ case exp.first
610
+ when Sexp then
611
+ lhs = exp.shift
612
+ rhs = exp.empty? ? nil : exp.shift
613
+
614
+ case lhs.first
615
+ when :array then
616
+ lhs.shift # node type
617
+ lhs = lhs.map do |l|
618
+ case l.first
619
+ when :masgn then
620
+ "(#{process(l)})"
621
+ else
622
+ process(l)
623
+ end
612
624
  end
625
+ else
626
+ raise "no clue: #{lhs.inspect}"
613
627
  end
614
- when :lasgn then
615
- lhs = [ splat(lhs.last) ]
616
- when :splat then
617
- lhs = [ :"*" ]
618
- else
619
- raise "no clue: #{lhs.inspect}"
620
- end
621
-
622
- if context[1] == :iter and rhs then
623
- lhs << splat(rhs[1])
624
- rhs = nil
625
- end
626
628
 
627
- unless rhs.nil? then
628
- t = rhs.first
629
- rhs = process rhs
630
- rhs = rhs[1..-2] if t == :array # FIX: bad? I dunno
631
- return "#{lhs.join(", ")} = #{rhs}"
629
+ unless rhs.nil? then
630
+ t = rhs.first
631
+ rhs = process rhs
632
+ rhs = rhs[1..-2] if t == :array # FIX: bad? I dunno
633
+ return "#{lhs.join(", ")} = #{rhs}"
634
+ else
635
+ return lhs.join(", ")
636
+ end
637
+ when Symbol then # block arg list w/ masgn
638
+ result = exp.join ", "
639
+ exp.clear
640
+ "(#{result})"
632
641
  else
633
- return lhs.join(", ")
642
+ raise "unknown masgn: #{exp.inspect}"
634
643
  end
635
644
  end
636
645
 
@@ -9,6 +9,7 @@ require 'ruby2ruby'
9
9
  require 'pt_testcase'
10
10
  require 'fileutils'
11
11
  require 'tmpdir'
12
+ require 'ruby_parser' if ENV["CHECK_SEXPS"]
12
13
 
13
14
  class R2RTestCase < ParseTreeTestCase
14
15
  def self.previous key
@@ -39,9 +40,14 @@ start = __LINE__
39
40
  class TestRuby2Ruby < R2RTestCase
40
41
  def setup
41
42
  super
43
+ @check_sexp = ENV["CHECK_SEXPS"]
42
44
  @processor = Ruby2Ruby.new
43
45
  end
44
46
 
47
+ def do_not_check_sexp!
48
+ @check_sexp = false
49
+ end
50
+
45
51
  def test_util_dthing_dregx
46
52
  inn = util_thingy(:dregx)
47
53
  inn.shift
@@ -87,6 +93,8 @@ class TestRuby2Ruby < R2RTestCase
87
93
  end
88
94
 
89
95
  def test_attr_reader_same
96
+ do_not_check_sexp!
97
+
90
98
  inn = s(:defn, :same, s(:args), s(:ivar, :@same))
91
99
  out = "attr_reader :same"
92
100
  util_compare inn, out
@@ -99,6 +107,8 @@ class TestRuby2Ruby < R2RTestCase
99
107
  end
100
108
 
101
109
  def test_attr_reader_same_name_diff_body
110
+ do_not_check_sexp!
111
+
102
112
  inn = s(:defn, :same, s(:args), s(:not, s(:ivar, :@same)))
103
113
  out = "def same\n (not @same)\nend"
104
114
  util_compare inn, out
@@ -124,12 +134,16 @@ class TestRuby2Ruby < R2RTestCase
124
134
  end
125
135
 
126
136
  def test_attr_writer_same
137
+ do_not_check_sexp!
138
+
127
139
  inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@same , s(:lvar, :o)))
128
140
  out = "attr_writer :same"
129
141
  util_compare inn, out
130
142
  end
131
143
 
132
144
  def test_dregx_slash
145
+ do_not_check_sexp!
146
+
133
147
  inn = util_thingy(:dregx)
134
148
  out = '/a"b#{(1 + 1)}c"d\/e/'
135
149
  util_compare inn, out, /a"b2c"d\/e/
@@ -148,6 +162,8 @@ class TestRuby2Ruby < R2RTestCase
148
162
  end
149
163
 
150
164
  def test_lit_regexp_slash
165
+ do_not_check_sexp! # dunno why on this one
166
+
151
167
  util_compare s(:lit, /blah\/blah/), '/blah\/blah/', /blah\/blah/
152
168
  end
153
169
 
@@ -206,20 +222,34 @@ class TestRuby2Ruby < R2RTestCase
206
222
  util_compare inn, out
207
223
  end
208
224
 
225
+ def test_masgn_block_arg
226
+ inn = s(:iter,
227
+ s(:call,
228
+ s(:nil),
229
+ :x),
230
+ s(:args, s(:masgn, :a, :b)),
231
+ s(:dstr, "",
232
+ s(:evstr, s(:lvar, :a)),
233
+ s(:str, "="),
234
+ s(:evstr, s(:lvar, :b))))
235
+ out = 'nil.x { |(a, b)| "#{a}=#{b}" }'
236
+
237
+ util_compare inn, out
238
+ end
239
+
209
240
  def test_masgn_wtf
210
241
  inn = s(:block,
211
242
  s(:masgn,
212
243
  s(:array, s(:lasgn, :k), s(:lasgn, :v)),
213
- s(:array,
214
- s(:splat,
215
- s(:call,
216
- s(:call, nil, :line),
217
- :split,
218
- s(:lit, /\=/), s(:lit, 2))))),
244
+ s(:splat,
245
+ s(:call,
246
+ s(:call, nil, :line),
247
+ :split,
248
+ s(:lit, /\=/), s(:lit, 2)))),
219
249
  s(:attrasgn,
220
250
  s(:self),
221
251
  :[]=,
222
- s(:arglist, s(:lvar, :k)),
252
+ s(:lvar, :k),
223
253
  s(:call, s(:lvar, :v), :strip)))
224
254
 
225
255
  out = "k, v = *line.split(/\\=/, 2)\nself[k] = v.strip\n"
@@ -230,12 +260,11 @@ class TestRuby2Ruby < R2RTestCase
230
260
  def test_masgn_splat_wtf
231
261
  inn = s(:masgn,
232
262
  s(:array, s(:lasgn, :k), s(:lasgn, :v)),
233
- s(:array,
234
- s(:splat,
235
- s(:call,
236
- s(:call, nil, :line),
237
- :split,
238
- s(:lit, /\=/), s(:lit, 2)))))
263
+ s(:splat,
264
+ s(:call,
265
+ s(:call, nil, :line),
266
+ :split,
267
+ s(:lit, /\=/), s(:lit, 2))))
239
268
  out = 'k, v = *line.split(/\\=/, 2)'
240
269
  util_compare inn, out
241
270
  end
@@ -264,9 +293,8 @@ class TestRuby2Ruby < R2RTestCase
264
293
  s(:call, nil, :x1),
265
294
  s(:resbody,
266
295
  s(:array),
267
- s(:block,
268
- s(:call, nil, :x2),
269
- s(:call, nil, :x3))))
296
+ s(:call, nil, :x2),
297
+ s(:call, nil, :x3)))
270
298
 
271
299
  out = "begin\n x1\nrescue\n x2\n x3\nend"
272
300
  util_compare inn, out
@@ -342,8 +370,17 @@ class TestRuby2Ruby < R2RTestCase
342
370
  util_compare inn, out
343
371
  end
344
372
 
373
+ def test_binary_operators
374
+ # (1 > 2)
375
+ Ruby2Ruby::BINARY.each do |op|
376
+ inn = s(:call, s(:lit, 1), op, s(:lit, 2))
377
+ out = "(1 #{op} 2)"
378
+ util_compare inn, out
379
+ end
380
+ end
381
+
345
382
  def test_call_empty_hash
346
- inn = s(:call, nil, :foo, s(:arglist, s(:hash)))
383
+ inn = s(:call, nil, :foo, s(:hash))
347
384
  out = "foo({})"
348
385
  util_compare inn, out
349
386
  end
@@ -422,13 +459,32 @@ class TestRuby2Ruby < R2RTestCase
422
459
  inn = s(:rescue,
423
460
  s(:call, nil, :alpha),
424
461
  s(:resbody, s(:array),
425
- s(:block,
426
- s(:call, nil, :beta),
427
- s(:call, nil, :gamma))))
462
+ s(:call, nil, :beta),
463
+ s(:call, nil, :gamma)))
428
464
  out = "begin\n alpha\nrescue\n beta\n gamma\nend"
429
465
  util_compare inn, out
430
466
  end
431
467
 
468
+ def test_array_adds_parens_around_rescue
469
+ inn = s(:array,
470
+ s(:call, nil, :a),
471
+ s(:rescue, s(:call, nil, :b), s(:resbody, s(:array), s(:call, nil, :c))))
472
+ out = "[a, (b rescue c)]"
473
+
474
+ util_compare inn, out
475
+ end
476
+
477
+ def test_call_arglist_rescue
478
+ inn = s(:call,
479
+ nil,
480
+ :method,
481
+ s(:rescue,
482
+ s(:call, nil, :a),
483
+ s(:resbody, s(:array), s(:call, nil, :b))))
484
+ out = "method((a rescue b))"
485
+ util_compare inn, out
486
+ end
487
+
432
488
  def test_unless_vs_if_not
433
489
  rb1 = "a unless b"
434
490
  rb2 = "a if (not b)"
@@ -445,7 +501,10 @@ class TestRuby2Ruby < R2RTestCase
445
501
  end
446
502
 
447
503
  def util_compare sexp, expected_ruby, expected_eval = nil
448
- assert_equal expected_ruby, @processor.process(sexp)
504
+ assert_equal sexp, RubyParser.new.process(expected_ruby), "ruby -> sexp" if
505
+ @check_sexp
506
+
507
+ assert_equal expected_ruby, @processor.process(sexp), "sexp -> ruby"
449
508
  assert_equal expected_eval, eval(expected_ruby) if expected_eval
450
509
  end
451
510
 
metadata CHANGED
@@ -1,24 +1,18 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby2ruby
3
- version: !ruby/object:Gem::Version
4
- hash: 3
5
- prerelease:
6
- segments:
7
- - 2
8
- - 0
9
- - 6
10
- version: 2.0.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.7
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Ryan Davis
14
8
  autorequire:
15
9
  bindir: bin
16
- cert_chain:
10
+ cert_chain:
17
11
  - |
18
12
  -----BEGIN CERTIFICATE-----
19
- MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
20
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
21
- GRYDY29tMB4XDTA5MDMwNjE4NTMxNVoXDTEwMDMwNjE4NTMxNVowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTEzMDkxNjIzMDQxMloXDTE0MDkxNjIzMDQxMlowRTETMBEGA1UE
22
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
23
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
24
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -28,106 +22,99 @@ cert_chain:
28
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
29
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
30
24
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
31
- AQAY59gYvDxqSqgC92nAP9P8dnGgfZgLxP237xS6XxFGJSghdz/nI6pusfCWKM8m
32
- vzjjH2wUMSSf3tNudQ3rCGLf2epkcU13/rguI88wO6MrE0wi4ZqLQX+eZQFskJb/
33
- w6x9W1ur8eR01s397LSMexySDBrJOh34cm2AlfKr/jokKCTwcM0OvVZnAutaovC0
34
- l1SVZ0ecg88bsWHA0Yhh7NFxK1utWoIhtB6AFC/+trM0FQEB/jZkIS8SaNzn96Rl
35
- n0sZEf77FLf5peR8TP/PtmIg7Cyqz23sLM4mCOoTGIy5OcZ8TdyiyINUHtb5ej/T
36
- FBHgymkyj/AOSqKRIpXPhjC6
25
+ AQCFZ7JTzoy1gcG4d8A6dmOJy7ygtO5MFpRIz8HuKCF5566nOvpy7aHhDDzFmQuu
26
+ FX3zDU6ghx5cQIueDhf2SGOncyBmmJRRYawm3wI0o1MeN6LZJ/3cRaOTjSFy6+S6
27
+ zqDmHBp8fVA2TGJtO0BLNkbGVrBJjh0UPmSoGzWlRhEVnYC33TpDAbNA+u39UrQI
28
+ ynwhNN7YbnmSR7+JU2cUjBFv2iPBO+TGuWC+9L2zn3NHjuc6tnmSYipA9y8Hv+As
29
+ Y4evBVezr3SjXz08vPqRO5YRdO3zfeMT8gBjRqZjWJGMZ2lD4XNfrs7eky74CyZw
30
+ xx3n58i0lQkBE1EpKE0lFu/y
37
31
  -----END CERTIFICATE-----
38
-
39
- date: 2013-06-21 00:00:00 Z
40
- dependencies:
41
- - !ruby/object:Gem::Dependency
32
+ date: 2013-12-14 00:00:00.000000000 Z
33
+ dependencies:
34
+ - !ruby/object:Gem::Dependency
42
35
  name: sexp_processor
43
- prerelease: false
44
- requirement: &id001 !ruby/object:Gem::Requirement
45
- none: false
46
- requirements:
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
47
38
  - - ~>
48
- - !ruby/object:Gem::Version
49
- hash: 27
50
- segments:
51
- - 4
52
- - 0
53
- version: "4.0"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.0'
54
41
  type: :runtime
55
- version_requirements: *id001
56
- - !ruby/object:Gem::Dependency
57
- name: ruby_parser
58
42
  prerelease: false
59
- requirement: &id002 !ruby/object:Gem::Requirement
60
- none: false
61
- requirements:
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '4.0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: ruby_parser
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
62
52
  - - ~>
63
- - !ruby/object:Gem::Version
64
- hash: 5
65
- segments:
66
- - 3
67
- - 1
68
- version: "3.1"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
69
55
  type: :runtime
70
- version_requirements: *id002
71
- - !ruby/object:Gem::Dependency
72
- name: minitest
73
56
  prerelease: false
74
- requirement: &id003 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.1'
62
+ - !ruby/object:Gem::Dependency
63
+ name: minitest
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
77
66
  - - ~>
78
- - !ruby/object:Gem::Version
79
- hash: 31
80
- segments:
81
- - 5
82
- - 0
83
- version: "5.0"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.2'
84
69
  type: :development
85
- version_requirements: *id003
86
- - !ruby/object:Gem::Dependency
87
- name: rdoc
88
70
  prerelease: false
89
- requirement: &id004 !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
92
73
  - - ~>
93
- - !ruby/object:Gem::Version
94
- hash: 27
95
- segments:
96
- - 4
97
- - 0
98
- version: "4.0"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.2'
76
+ - !ruby/object:Gem::Dependency
77
+ name: rdoc
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '4.0'
99
83
  type: :development
100
- version_requirements: *id004
101
- - !ruby/object:Gem::Dependency
102
- name: hoe
103
84
  prerelease: false
104
- requirement: &id005 !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
107
87
  - - ~>
108
- - !ruby/object:Gem::Version
109
- hash: 11
110
- segments:
111
- - 3
112
- - 6
113
- version: "3.6"
88
+ - !ruby/object:Gem::Version
89
+ version: '4.0'
90
+ - !ruby/object:Gem::Dependency
91
+ name: hoe
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3.7'
114
97
  type: :development
115
- version_requirements: *id005
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '3.7'
116
104
  description: |-
117
105
  ruby2ruby provides a means of generating pure ruby code easily from
118
106
  RubyParser compatible Sexps. This makes making dynamic language
119
107
  processors in ruby easier than ever!
120
- email:
108
+ email:
121
109
  - ryand-ruby@zenspider.com
122
- executables:
110
+ executables:
123
111
  - r2r_show
124
112
  extensions: []
125
-
126
- extra_rdoc_files:
113
+ extra_rdoc_files:
127
114
  - History.txt
128
115
  - Manifest.txt
129
116
  - README.txt
130
- files:
117
+ files:
131
118
  - .autotest
132
119
  - History.txt
133
120
  - Manifest.txt
@@ -138,38 +125,31 @@ files:
138
125
  - test/test_ruby2ruby.rb
139
126
  - .gemtest
140
127
  homepage: https://github.com/seattlerb/ruby2ruby
141
- licenses: []
142
-
128
+ licenses:
129
+ - MIT
130
+ metadata: {}
143
131
  post_install_message:
144
- rdoc_options:
132
+ rdoc_options:
145
133
  - --main
146
134
  - README.txt
147
- require_paths:
135
+ require_paths:
148
136
  - lib
149
- required_ruby_version: !ruby/object:Gem::Requirement
150
- none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- hash: 3
155
- segments:
156
- - 0
157
- version: "0"
158
- required_rubygems_version: !ruby/object:Gem::Requirement
159
- none: false
160
- requirements:
161
- - - ">="
162
- - !ruby/object:Gem::Version
163
- hash: 3
164
- segments:
165
- - 0
166
- version: "0"
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
167
147
  requirements: []
168
-
169
148
  rubyforge_project: seattlerb
170
- rubygems_version: 1.8.25
149
+ rubygems_version: 2.1.10
171
150
  signing_key:
172
- specification_version: 3
173
- summary: ruby2ruby provides a means of generating pure ruby code easily from RubyParser compatible Sexps
174
- test_files:
151
+ specification_version: 4
152
+ summary: ruby2ruby provides a means of generating pure ruby code easily from RubyParser
153
+ compatible Sexps
154
+ test_files:
175
155
  - test/test_ruby2ruby.rb
metadata.gz.sig CHANGED
Binary file