ruby2ruby 1.2.2 → 1.2.3

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 @@
1
+ zm)�e��BQ��ʸc�I����f�o�I�}�e�,�<1����(L���70�R�U��_�*l`�?�:���΅�ț|T,8��5��h�3 4��)�������۶4�s̕��Υ�B�{'1˥aL�7d u��w׆Xzð� x�巒b��Df�9�QuoJ��"���Wh��ȥ��a \�� :�n�����$L��W��i���gCxP���7�<�>�dI}��p�E��r���C�4RW��0�O�h�
@@ -1,3 +1,12 @@
1
+ === 1.2.3 / 2009-06-23
2
+
3
+ * 4 minor enhancements:
4
+
5
+ * Overhauled 4-generation tests to use RubyParser. Much cleaner
6
+ * Removed last of ParseTree. Fully switched to RubyParser.
7
+ * Switched to minitest
8
+ * Updated Rakefile to new hoe capabilities
9
+
1
10
  === 1.2.2 / 2009-01-20
2
11
 
3
12
  * 3 minor enhancements:
data/Rakefile CHANGED
@@ -4,36 +4,20 @@ require 'rubygems'
4
4
  require 'hoe'
5
5
 
6
6
  Hoe.add_include_dirs("lib",
7
- "../../ZenTest/dev/lib",
8
7
  "../../ParseTree/dev/test",
9
- "../../ParseTree/dev/lib",
10
- "../../RubyInline/dev/lib",
11
8
  "../../ruby_parser/dev/lib",
12
9
  "../../sexp_processor/dev/lib")
13
10
 
14
- require './lib/ruby2ruby.rb'
11
+ Hoe.plugin :seattlerb
15
12
 
16
- Hoe.new('ruby2ruby', Ruby2Ruby::VERSION) do |r2r|
17
- r2r.rubyforge_name = 'seattlerb'
18
- r2r.developer('Ryan Davis', 'ryand-ruby@zenspider.com')
13
+ Hoe.spec 'ruby2ruby' do
14
+ developer 'Ryan Davis', 'ryand-ruby@zenspider.com'
19
15
 
20
- r2r.clean_globs << File.expand_path("~/.ruby_inline")
21
- r2r.extra_deps << ["ParseTree", "~> 3.0"]
22
- end
23
-
24
- task :test => :clean
25
-
26
- task :rcov_info do
27
- pat = ENV['PATTERN'] || "test/test_*.rb"
28
- ruby "#{Hoe::RUBY_FLAGS} -S rcov --text-report --save coverage.info #{pat}"
29
- end
16
+ self.rubyforge_name = 'seattlerb'
30
17
 
31
- task :rcov_overlay do
32
- rcov, eol = Marshal.load(File.read("coverage.info")).last[ENV["FILE"]], 1
33
- puts rcov[:lines].zip(rcov[:coverage]).map { |line, coverage|
34
- bol, eol = eol, eol + line.length
35
- [bol, eol, "#ffcccc"] unless coverage
36
- }.compact.inspect
18
+ extra_deps << ["sexp_processor", "~> 3.0"]
19
+ extra_deps << ["ruby_parser", "~> 2.0"]
20
+ extra_dev_deps << ["ParseTree", "~> 3.0"]
37
21
  end
38
22
 
39
- # vim: syntax=Ruby
23
+ # vim: syntax=ruby
@@ -1,11 +1,10 @@
1
1
  #!/usr/bin/env ruby -w
2
2
 
3
- begin require 'rubygems'; rescue LoadError; end
3
+ require 'rubygems'
4
4
  require 'sexp_processor'
5
- require 'unified_ruby'
6
5
 
7
6
  class Ruby2Ruby < SexpProcessor
8
- VERSION = '1.2.2'
7
+ VERSION = '1.2.3'
9
8
  LINE_LENGTH = 78
10
9
 
11
10
  ##
@@ -25,21 +24,6 @@ class Ruby2Ruby < SexpProcessor
25
24
  :return,
26
25
  ]
27
26
 
28
- def self.translate(klass_or_str, method = nil)
29
- require 'parse_tree'
30
- sexp = ParseTree.translate(klass_or_str, method)
31
-
32
- unifier = Unifier.new
33
-
34
- unifier.processors.each do |p|
35
- p.unsupported.delete :cfunc # HACK
36
- end
37
-
38
- sexp = unifier.process(sexp)
39
-
40
- self.new.process(sexp)
41
- end
42
-
43
27
  def initialize
44
28
  super
45
29
  @indent = " "
@@ -4,16 +4,12 @@ $TESTING = true
4
4
 
5
5
  $: << 'lib'
6
6
 
7
- SKIP_PROCS = ENV['FAST'] or RUBY_VERSION >= "1.9" or defined? RUBY_ENGINE
8
-
9
- require 'test/unit'
7
+ require 'minitest/autorun'
10
8
  require 'ruby2ruby'
11
9
  require 'pt_testcase'
12
10
  require 'fileutils'
13
11
  require 'tmpdir'
14
12
 
15
- FileUtils.rm_rf File.expand_path("~/.ruby_inline") # for self-translation
16
-
17
13
  class R2RTestCase < ParseTreeTestCase
18
14
  def self.previous key
19
15
  "ParseTree"
@@ -36,21 +32,14 @@ class R2RTestCase < ParseTreeTestCase
36
32
  end
37
33
  end
38
34
 
39
- class TestRuby2Ruby < R2RTestCase
40
- alias :refute_nil :assert_not_nil unless defined? Mini
35
+ start = __LINE__
41
36
 
37
+ class TestRuby2Ruby < R2RTestCase
42
38
  def setup
43
39
  super
44
40
  @processor = Ruby2Ruby.new
45
41
  end
46
42
 
47
- def teardown
48
- unless $DEBUG then
49
- FileUtils.rm_rf @rootdir
50
- ENV.delete 'INLINEDIR'
51
- end if defined?(@rootdir) && @rootdir
52
- end
53
-
54
43
  def test_dregx_slash
55
44
  inn = util_thingy(:dregx)
56
45
  out = "/blah\\\"blah#\{(1 + 1)}blah\\\"blah\\/blah/"
@@ -124,9 +113,9 @@ class TestRuby2Ruby < R2RTestCase
124
113
  s(:call,
125
114
  s(:call, nil, :line, s(:arglist)),
126
115
  :split,
127
- s(:arglist, s(:lit, /=/), s(:lit, 2))))))
116
+ s(:arglist, s(:lit, /\=/), s(:lit, 2))))))
128
117
 
129
- out = 'x(*line.split(/=/, 2))'
118
+ out = 'x(*line.split(/\=/, 2))'
130
119
  util_compare inn, out
131
120
  end
132
121
 
@@ -135,12 +124,6 @@ class TestRuby2Ruby < R2RTestCase
135
124
  assert_equal expected_eval, eval(expected_ruby) if expected_eval
136
125
  end
137
126
 
138
- def util_setup_inline
139
- @rootdir = File.join(Dir.tmpdir, "test_ruby_to_ruby.#{$$}")
140
- Dir.mkdir @rootdir, 0700 unless test ?d, @rootdir
141
- ENV['INLINEDIR'] = @rootdir
142
- end
143
-
144
127
  def util_thingy(type)
145
128
  s(type,
146
129
  'blah"blah',
@@ -149,44 +132,6 @@ class TestRuby2Ruby < R2RTestCase
149
132
  end
150
133
  end
151
134
 
152
- ##
153
- # Converts a +target+ using a +processor+ and converts +target+ name
154
- # in the source adding +gen+ to allow easy renaming.
155
-
156
- $broken = false
157
- def morph_and_eval(processor, target, gen, n)
158
- return if $broken
159
- begin
160
- processor = Object.const_get processor if Symbol === processor
161
- target = Object.const_get target if Symbol === target
162
- old_name = target.name
163
- new_name = target.name.sub(/\d*$/, gen.to_s)
164
- ruby = processor.translate(target).sub(old_name, new_name)
165
-
166
- old, $-w = $-w, nil
167
- eval ruby
168
- $-w = old
169
-
170
- target.constants.each do |constant|
171
- eval "#{new_name}::#{constant} = #{old_name}::#{constant}"
172
- end
173
- rescue Exception => e
174
- warn "Self-Translation Generation #{n} failed:"
175
- warn "#{e.class}: #{e.message}"
176
- warn e.backtrace.join("\n ")
177
- warn ""
178
- warn ruby
179
- warn ""
180
- $broken = true
181
- else
182
- begin
183
- yield if block_given?
184
- rescue
185
- # probably already handled
186
- end
187
- end
188
- end
189
-
190
135
  ####################
191
136
  # impl
192
137
  # old new
@@ -196,33 +141,44 @@ end
196
141
  # s
197
142
  # t new 2 3
198
143
 
199
- # Self-Translation: 1st Generation - morph Ruby2Ruby using Ruby2Ruby
200
- morph_and_eval :Ruby2Ruby, :Ruby2Ruby, 2, 1 do
201
- class TestRuby2Ruby1 < TestRuby2Ruby
202
- def setup
203
- super
204
- @processor = Ruby2Ruby2.new
205
- end
206
- end
207
- end unless SKIP_PROCS
208
-
209
- # Self-Translation: 2nd Generation - morph TestRuby2Ruby using Ruby2Ruby
210
- morph_and_eval :Ruby2Ruby, :TestRuby2Ruby, 2, 2 do
211
- # Self-Translation: 3rd Generation - test Ruby2Ruby2 with TestRuby2Ruby1
212
- class TestRuby2Ruby3 < TestRuby2Ruby2
213
- def setup
214
- super
215
- @processor = Ruby2Ruby2.new
216
- end
217
- end
218
- end unless SKIP_PROCS
219
-
220
- # Self-Translation: 4th (and final) Generation - fully circular
221
- morph_and_eval(:Ruby2Ruby2, :Ruby2Ruby2, 3, 4) do
222
- class TestRuby2Ruby4 < TestRuby2Ruby3
223
- def setup
224
- super
225
- @processor = Ruby2Ruby3.new
226
- end
227
- end
228
- end unless SKIP_PROCS
144
+ tr2r = File.read(__FILE__).split(/\n/)[start+1..__LINE__-2].join("\n")
145
+ ir2r = File.read("lib/ruby2ruby.rb")
146
+
147
+ require 'ruby_parser'
148
+
149
+ def silent_eval ruby
150
+ old, $-w = $-w, nil
151
+ eval ruby
152
+ $-w = old
153
+ end
154
+
155
+ def morph_and_eval src, from, to, processor
156
+ new_src = processor.new.process(RubyParser.new.process(src.sub(from, to)))
157
+ silent_eval new_src
158
+ new_src
159
+ end
160
+
161
+ ____ = morph_and_eval tr2r, /TestRuby2Ruby/, 'TestRuby2Ruby2', Ruby2Ruby
162
+ ruby = morph_and_eval ir2r, /Ruby2Ruby/, 'Ruby2Ruby2', Ruby2Ruby
163
+ ____ = morph_and_eval ruby, /Ruby2Ruby2/, 'Ruby2Ruby3', Ruby2Ruby2
164
+
165
+ class TestRuby2Ruby1 < TestRuby2Ruby
166
+ def setup
167
+ super
168
+ @processor = Ruby2Ruby2.new
169
+ end
170
+ end
171
+
172
+ class TestRuby2Ruby3 < TestRuby2Ruby2
173
+ def setup
174
+ super
175
+ @processor = Ruby2Ruby2.new
176
+ end
177
+ end
178
+
179
+ class TestRuby2Ruby4 < TestRuby2Ruby2
180
+ def setup
181
+ super
182
+ @processor = Ruby2Ruby3.new
183
+ end
184
+ end
metadata CHANGED
@@ -1,21 +1,62 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby2ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
14
+ ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
+ GRYDY29tMB4XDTA5MDMwNjE4NTMxNVoXDTEwMDMwNjE4NTMxNVowRTETMBEGA1UE
16
+ AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
+ JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
+ b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
19
+ taCPaLmfYIaFcHHCSY4hYDJijRQkLxPeB3xbOfzfLoBDbjvx5JxgJxUjmGa7xhcT
20
+ oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
21
+ GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
+ qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
+ gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
+ HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
25
+ AQAY59gYvDxqSqgC92nAP9P8dnGgfZgLxP237xS6XxFGJSghdz/nI6pusfCWKM8m
26
+ vzjjH2wUMSSf3tNudQ3rCGLf2epkcU13/rguI88wO6MrE0wi4ZqLQX+eZQFskJb/
27
+ w6x9W1ur8eR01s397LSMexySDBrJOh34cm2AlfKr/jokKCTwcM0OvVZnAutaovC0
28
+ l1SVZ0ecg88bsWHA0Yhh7NFxK1utWoIhtB6AFC/+trM0FQEB/jZkIS8SaNzn96Rl
29
+ n0sZEf77FLf5peR8TP/PtmIg7Cyqz23sLM4mCOoTGIy5OcZ8TdyiyINUHtb5ej/T
30
+ FBHgymkyj/AOSqKRIpXPhjC6
31
+ -----END CERTIFICATE-----
11
32
 
12
- date: 2009-01-20 00:00:00 -08:00
33
+ date: 2009-06-23 00:00:00 -07:00
13
34
  default_executable:
14
35
  dependencies:
15
36
  - !ruby/object:Gem::Dependency
16
- name: ParseTree
37
+ name: sexp_processor
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: "3.0"
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: ruby_parser
17
48
  type: :runtime
18
49
  version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: "2.0"
55
+ version:
56
+ - !ruby/object:Gem::Dependency
57
+ name: ParseTree
58
+ type: :development
59
+ version_requirement:
19
60
  version_requirements: !ruby/object:Gem::Requirement
20
61
  requirements:
21
62
  - - ~>
@@ -30,9 +71,12 @@ dependencies:
30
71
  requirements:
31
72
  - - ">="
32
73
  - !ruby/object:Gem::Version
33
- version: 1.8.2
74
+ version: 2.3.0
34
75
  version:
35
- description: ruby2ruby provides a means of generating pure ruby code easily from ParseTree's Sexps. This makes making dynamic language processors much easier in ruby than ever before.
76
+ description: |-
77
+ ruby2ruby provides a means of generating pure ruby code easily from
78
+ ParseTree's Sexps. This makes making dynamic language processors much
79
+ easier in ruby than ever before.
36
80
  email:
37
81
  - ryand-ruby@zenspider.com
38
82
  executables:
@@ -54,6 +98,8 @@ files:
54
98
  - test/test_ruby2ruby.rb
55
99
  has_rdoc: true
56
100
  homepage: http://seattlerb.rubyforge.org/
101
+ licenses: []
102
+
57
103
  post_install_message:
58
104
  rdoc_options:
59
105
  - --main
@@ -75,9 +121,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
121
  requirements: []
76
122
 
77
123
  rubyforge_project: seattlerb
78
- rubygems_version: 1.3.1
124
+ rubygems_version: 1.3.4
79
125
  signing_key:
80
- specification_version: 2
126
+ specification_version: 3
81
127
  summary: ruby2ruby provides a means of generating pure ruby code easily from ParseTree's Sexps
82
128
  test_files:
83
129
  - test/test_ruby2ruby.rb
Binary file