ruby2ruby 2.0.6 → 2.0.7

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.
@@ -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