ruby2ruby 2.0.3 → 2.0.4
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.
- data.tar.gz.sig +1 -4
- data/History.txt +6 -0
- data/lib/ruby2ruby.rb +24 -5
- data/test/test_ruby2ruby.rb +36 -0
- metadata +7 -7
- metadata.gz.sig +3 -2
data.tar.gz.sig
CHANGED
@@ -1,4 +1 @@
|
|
1
|
-
|
2
|
-
١�k��U�ẋl�J�<���t
|
3
|
-
Iwh�Jqᵦ���A
|
4
|
-
���ά}ê�.N�#��x[5V$�z�6��ta��[<�4N�bl��!���;�mw0�Tz]�sb��U�gkkClqj&�8���j�bƂ��D%n�4�z���������"-�_7aJ�y�G�0�G��7����=�B�!�ɂɑ�=N�/�w�
|
1
|
+
}�*5ܡ߂�:�|�u#a=�M��'��"\Zؾ"�d!��,g�s=~:.�Wc6pP�%~w��z�������6����������RD+�+A�j$�Y~�8L�9��K1>������a��R��1g��8c����eY�蘷놓�"ȳ�;u�R�85�ͫn\�P��7��6��̦�����2636�M�aC���xQ�,�^��dt���;5ʬI8J�7.ꂰ�؟$��Jߥ�%��DFE��K��9y� ��
|
data/History.txt
CHANGED
data/lib/ruby2ruby.rb
CHANGED
@@ -24,7 +24,7 @@ class Regexp
|
|
24
24
|
end
|
25
25
|
|
26
26
|
class Ruby2Ruby < SexpProcessor
|
27
|
-
VERSION =
|
27
|
+
VERSION = "2.0.4"
|
28
28
|
LINE_LENGTH = 78
|
29
29
|
|
30
30
|
BINARY = [:<=>, :==, :<, :>, :<=, :>=, :-, :+, :*, :/, :%, :<<, :>>, :**]
|
@@ -315,15 +315,34 @@ class Ruby2Ruby < SexpProcessor
|
|
315
315
|
type1 = exp[1].first
|
316
316
|
type2 = exp[2].first rescue nil
|
317
317
|
|
318
|
-
if type1 == :args and [:ivar, :attrset].include? type2 then
|
319
|
-
name = exp.shift
|
318
|
+
if type1 == :args and [:ivar, :iasgn, :attrset].include? type2 then
|
319
|
+
name = exp.first # don't shift in case we pass through
|
320
320
|
case type2
|
321
321
|
when :ivar then
|
322
|
-
exp.
|
323
|
-
|
322
|
+
ivar_name = exp.ivar.last
|
323
|
+
|
324
|
+
meth_name = ivar_name.to_s[1..-1].to_sym
|
325
|
+
expected = s(meth_name, s(:args), s(:ivar, ivar_name))
|
326
|
+
|
327
|
+
if exp == expected then
|
328
|
+
exp.clear
|
329
|
+
return "attr_reader #{name.inspect}"
|
330
|
+
end
|
324
331
|
when :attrset then
|
332
|
+
# TODO: deprecate? this is a PT relic
|
325
333
|
exp.clear
|
326
334
|
return "attr_writer :#{name.to_s[0..-2]}"
|
335
|
+
when :iasgn then
|
336
|
+
ivar_name = exp.iasgn[1]
|
337
|
+
meth_name = "#{ivar_name.to_s[1..-1]}=".to_sym
|
338
|
+
arg_name = exp.args.last
|
339
|
+
expected = s(meth_name, s(:args, arg_name),
|
340
|
+
s(:iasgn, ivar_name, s(:lvar, arg_name)))
|
341
|
+
|
342
|
+
if exp == expected then
|
343
|
+
exp.clear
|
344
|
+
return "attr_writer :#{name.to_s[0..-2]}"
|
345
|
+
end
|
327
346
|
else
|
328
347
|
raise "Unknown defn type: #{exp.inspect}"
|
329
348
|
end
|
data/test/test_ruby2ruby.rb
CHANGED
@@ -80,6 +80,42 @@ class TestRuby2Ruby < R2RTestCase
|
|
80
80
|
util_compare inn, out
|
81
81
|
end
|
82
82
|
|
83
|
+
def test_attr_reader_diff
|
84
|
+
inn = s(:defn, :same, s(:args), s(:ivar, :@diff))
|
85
|
+
out = "def same\n @diff\nend"
|
86
|
+
util_compare inn, out
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_attr_reader_same
|
90
|
+
inn = s(:defn, :same, s(:args), s(:ivar, :@same))
|
91
|
+
out = "attr_reader :same"
|
92
|
+
util_compare inn, out
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_attr_reader_same_name_diff_body
|
96
|
+
inn = s(:defn, :same, s(:args), s(:not, s(:ivar, :@same)))
|
97
|
+
out = "def same\n (not @same)\nend"
|
98
|
+
util_compare inn, out
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_attr_writer_diff
|
102
|
+
inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@diff, s(:lvar, :o)))
|
103
|
+
out = "def same=(o)\n @diff = o\nend"
|
104
|
+
util_compare inn, out
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_attr_writer_same_name_diff_body
|
108
|
+
inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@same, s(:lit, 42)))
|
109
|
+
out = "def same=(o)\n @same = 42\nend"
|
110
|
+
util_compare inn, out
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_attr_writer_same
|
114
|
+
inn = s(:defn, :same=, s(:args, :o), s(:iasgn, :@same , s(:lvar, :o)))
|
115
|
+
out = "attr_writer :same"
|
116
|
+
util_compare inn, out
|
117
|
+
end
|
118
|
+
|
83
119
|
def test_dregx_slash
|
84
120
|
inn = util_thingy(:dregx)
|
85
121
|
out = '/a"b#{(1 + 1)}c"d\/e/'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby2ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 2.0.
|
9
|
+
- 4
|
10
|
+
version: 2.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
FBHgymkyj/AOSqKRIpXPhjC6
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date: 2013-
|
39
|
+
date: 2013-03-28 00:00:00 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sexp_processor
|
@@ -76,11 +76,11 @@ dependencies:
|
|
76
76
|
requirements:
|
77
77
|
- - ~>
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
hash:
|
79
|
+
hash: 21
|
80
80
|
segments:
|
81
81
|
- 4
|
82
|
-
-
|
83
|
-
version: "4.
|
82
|
+
- 7
|
83
|
+
version: "4.7"
|
84
84
|
type: :development
|
85
85
|
version_requirements: *id003
|
86
86
|
- !ruby/object:Gem::Dependency
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
2
|
-
�
|
1
|
+
V��>\5�{�j[�������{
|
2
|
+
�Ԑ8�Ed�[�4p�`�BhZ������=Ĵ-J��9���]۹�������ENE#ō�S��%�L�C��RsOB��Ll��t��^����id�#j��~�[OD���S~e��b�F.RGI��;f��
|
3
|
+
�:|��)��ܝ��'�[��8G��a��F���������2���)�l�L�[Q�y���X�ӠDN�0��Wj"�ڄd3�LЭ�
|