step_rewrite 0.0.1
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/.gitignore +5 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +47 -0
- data/README.textile +24 -0
- data/Rakefile +9 -0
- data/console +30 -0
- data/lib/step_rewrite.rb +10 -0
- data/lib/step_rewrite/rewriter.rb +61 -0
- data/lib/step_rewrite/sexp_utilities.rb +20 -0
- data/lib/step_rewrite/version.rb +3 -0
- data/spec/convert_matcher.rb +77 -0
- data/spec/step_rewrite_spec.rb +191 -0
- data/step_rewrite.gemspec +27 -0
- metadata +168 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
step_rewrite (0.0.1)
|
5
|
+
ParseTree (~> 3.0.6)
|
6
|
+
ruby2ruby (~> 1.2.5)
|
7
|
+
sexp_processor (~> 3.0.5)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: http://rubygems.org/
|
11
|
+
remote: http://gems.github.com/
|
12
|
+
remote: http://gems.rubyforge.org/
|
13
|
+
specs:
|
14
|
+
ParseTree (3.0.6)
|
15
|
+
RubyInline (>= 3.7.0)
|
16
|
+
sexp_processor (>= 3.0.0)
|
17
|
+
RubyInline (3.8.6)
|
18
|
+
ZenTest (~> 4.3)
|
19
|
+
ZenTest (4.4.0)
|
20
|
+
diff-lcs (1.1.2)
|
21
|
+
rspec (2.0.0)
|
22
|
+
rspec-core (= 2.0.0)
|
23
|
+
rspec-expectations (= 2.0.0)
|
24
|
+
rspec-mocks (= 2.0.0)
|
25
|
+
rspec-core (2.0.0)
|
26
|
+
rspec-expectations (2.0.0)
|
27
|
+
diff-lcs (>= 1.1.2)
|
28
|
+
rspec-mocks (2.0.0)
|
29
|
+
rspec-core (= 2.0.0)
|
30
|
+
rspec-expectations (= 2.0.0)
|
31
|
+
ruby2ruby (1.2.5)
|
32
|
+
ruby_parser (~> 2.0)
|
33
|
+
sexp_processor (~> 3.0)
|
34
|
+
ruby_parser (2.0.5)
|
35
|
+
sexp_processor (~> 3.0)
|
36
|
+
sexp_processor (3.0.5)
|
37
|
+
|
38
|
+
PLATFORMS
|
39
|
+
ruby
|
40
|
+
|
41
|
+
DEPENDENCIES
|
42
|
+
ParseTree (~> 3.0.6)
|
43
|
+
bundler (>= 1.0.0.rc.6)
|
44
|
+
rspec (~> 2.0.0.beta.22)
|
45
|
+
ruby2ruby (~> 1.2.5)
|
46
|
+
sexp_processor (~> 3.0.5)
|
47
|
+
step_rewrite!
|
data/README.textile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
h2. LICENSE:
|
2
|
+
|
3
|
+
(The MIT License)
|
4
|
+
|
5
|
+
Copyright (c) 2008 FIX
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
8
|
+
a copy of this software and associated documentation files (the
|
9
|
+
'Software'), to deal in the Software without restriction, including
|
10
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
11
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
12
|
+
permit persons to whom the Software is furnished to do so, subject to
|
13
|
+
the following conditions:
|
14
|
+
|
15
|
+
The above copyright notice and this permission notice shall be
|
16
|
+
included in all copies or substantial portions of the Software.
|
17
|
+
|
18
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
21
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
22
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
23
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
24
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
data/console
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
|
7
|
+
options = { :sandbox => false, :irb => irb }
|
8
|
+
OptionParser.new do |opt|
|
9
|
+
opt.banner = "Usage: console [environment] [options]"
|
10
|
+
opt.on('-s', '--sandbox', 'Rollback database modifications on exit.') { |v| options[:sandbox] = v }
|
11
|
+
opt.on("--irb=[#{irb}]", 'Invoke a different irb.') { |v| options[:irb] = v }
|
12
|
+
opt.on("--debugger", 'Enable ruby-debuggirng for the console.') { |v| options[:debugger] = v }
|
13
|
+
opt.parse!(ARGV)
|
14
|
+
end
|
15
|
+
|
16
|
+
libs = %( -r "#{File.dirname(__FILE__)}/lib/step_rewrite")
|
17
|
+
|
18
|
+
|
19
|
+
if options[:debugger]
|
20
|
+
begin
|
21
|
+
require 'ruby-debug'
|
22
|
+
libs << " -r ruby-debug"
|
23
|
+
puts "=> Debugger enabled"
|
24
|
+
rescue Exception
|
25
|
+
puts "You need to install ruby-debug to run the console in debugging mode. With gems, use 'gem install ruby-debug'"
|
26
|
+
exit
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
exec "ruby -S #{options[:irb]} #{libs} --simple-prompt"
|
data/lib/step_rewrite.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'parse_tree'
|
3
|
+
require 'parse_tree_extensions'
|
4
|
+
require 'Ruby2Ruby'
|
5
|
+
|
6
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
7
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
8
|
+
|
9
|
+
require "step_rewrite/sexp_utilities"
|
10
|
+
require "step_rewrite/rewriter"
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module StepRewrite
|
2
|
+
class Rewriter < SexpProcessor
|
3
|
+
include SexpUtilities
|
4
|
+
|
5
|
+
def initialize(cb)
|
6
|
+
super()
|
7
|
+
self.strict = false
|
8
|
+
self.require_empty = false
|
9
|
+
@cb = cb
|
10
|
+
end
|
11
|
+
|
12
|
+
def process_block(exp)
|
13
|
+
exp.shift
|
14
|
+
result = exp.reverse.inject([], &method(:accumulate))
|
15
|
+
exp.clear
|
16
|
+
result.size > 1 ? s(:block, *result) : result.first
|
17
|
+
end
|
18
|
+
|
19
|
+
def accumulate(acc_exp, cur_exp)
|
20
|
+
case identify(cur_exp)
|
21
|
+
when :special_call then
|
22
|
+
cur_exp[3].pop
|
23
|
+
inner_exp = acc_exp.size > 1 ? s(:block, *acc_exp) : acc_exp.first
|
24
|
+
[s(*[:iter, cur_exp, nil] + [inner_exp].compact)]
|
25
|
+
when :special_asgn then
|
26
|
+
param = cur_exp[1]
|
27
|
+
cur_exp[2][3].pop
|
28
|
+
inner_exp = acc_exp.size > 1 ? s(:block, *acc_exp) : acc_exp.first
|
29
|
+
[s(*[:iter, cur_exp[2], s(:lasgn, param)] + [inner_exp].compact)]
|
30
|
+
when :masgn then
|
31
|
+
param = cur_exp[1][1..-1].to_a
|
32
|
+
cur_exp[2][1][3].pop
|
33
|
+
inner_exp = acc_exp.size > 1 ? s(:block, *acc_exp) : acc_exp.first
|
34
|
+
[s(*[:iter, cur_exp[2][1], s(:masgn, s(:array, *param))] + [inner_exp].compact)]
|
35
|
+
when :attrasgn then
|
36
|
+
next_exp = cur_exp.last.pop.tap{|x| x.last.pop}
|
37
|
+
param = cur_exp
|
38
|
+
inner_exp = acc_exp.size > 1 ? s(:block, *acc_exp) : acc_exp.first
|
39
|
+
[s(*[:iter, next_exp, param] + [inner_exp].compact)]
|
40
|
+
else
|
41
|
+
acc_exp.unshift(process_inner_expr(cur_exp))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def special_call?(exp)
|
46
|
+
exp.first == :call &&
|
47
|
+
exp[3].last.class == Sexp &&
|
48
|
+
exp[3].last.first == :block_pass &&
|
49
|
+
exp[3].last.last[2] == @cb
|
50
|
+
end
|
51
|
+
|
52
|
+
def identify(exp)
|
53
|
+
return :special_call if special_call?(exp)
|
54
|
+
return :special_asgn if exp.first == :lasgn && special_call?(exp[2])
|
55
|
+
return :masgn if exp.first == :masgn && special_call?(exp[2][1])
|
56
|
+
return :attrasgn if exp.first == :attrasgn && special_call?(exp[3][1])
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
$:.unshift File.dirname(__FILE__)
|
2
|
+
|
3
|
+
module SexpUtilities
|
4
|
+
|
5
|
+
def truthy?(sexp)
|
6
|
+
sexp.respond_to?(:[]) && (sexp[0] == :true || sexp[0] == :lit || sexp[0] == :str || sexp[0] == :array)
|
7
|
+
end
|
8
|
+
|
9
|
+
def falsy?(sexp)
|
10
|
+
sexp.respond_to?(:[]) && (sexp[0] == :nil || sexp[0] == :false)
|
11
|
+
end
|
12
|
+
|
13
|
+
def list?(sexp)
|
14
|
+
sexp.respond_to?(:[]) && sexp.respond_to?(:empty?) && sexp.respond_to?(:first)
|
15
|
+
end
|
16
|
+
|
17
|
+
def process_inner_expr(inner)
|
18
|
+
inner.kind_of?(Array) ? process(inner) : inner
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module RSpec
|
2
|
+
module Matchers
|
3
|
+
class Convert
|
4
|
+
def initialize(given_code)
|
5
|
+
@given_code = code(&given_code)
|
6
|
+
end
|
7
|
+
|
8
|
+
def matches?(event_proc)
|
9
|
+
@new_code = event_proc.call(@given_code.deep_clone)
|
10
|
+
@expected_code ? @new_code == @expected_code : @new_code != @given_code
|
11
|
+
end
|
12
|
+
|
13
|
+
def to(&expected_code)
|
14
|
+
@expected_code = code(&expected_code)
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def description
|
19
|
+
convert_to = "INTO \n#{expected_code_in_ruby}\n" if @expected_code
|
20
|
+
"Convert \n#{given_code_in_ruby}#{convert_to}\n"
|
21
|
+
end
|
22
|
+
|
23
|
+
[:expected, :given, :new].map{|t| "#{t}_code"}.each do |type|
|
24
|
+
define_method "#{type}_in_ruby" do
|
25
|
+
code = instance_variable_get("@#{type}")
|
26
|
+
Ruby2Ruby.new.process(code.deep_clone) rescue code
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def code(&block)
|
31
|
+
Sexp.from_array(block.to_sexp)[3]
|
32
|
+
end
|
33
|
+
|
34
|
+
def failure_message_for_should
|
35
|
+
<<-END
|
36
|
+
given code was converted to
|
37
|
+
#{new_code_in_ruby}
|
38
|
+
aka
|
39
|
+
expected
|
40
|
+
#{@expected_code}
|
41
|
+
got
|
42
|
+
#{@new_code}
|
43
|
+
END
|
44
|
+
rescue
|
45
|
+
<<-END
|
46
|
+
Expected
|
47
|
+
#{@expected_code}
|
48
|
+
got
|
49
|
+
#{@new_code}
|
50
|
+
END
|
51
|
+
end
|
52
|
+
|
53
|
+
def failure_message_for_should_not
|
54
|
+
<<-END
|
55
|
+
given code was converted to
|
56
|
+
#{new_code_in_ruby}
|
57
|
+
aka
|
58
|
+
expected
|
59
|
+
#{@given_code}
|
60
|
+
got
|
61
|
+
#{@new_code}
|
62
|
+
END
|
63
|
+
rescue
|
64
|
+
<<-END
|
65
|
+
Expected
|
66
|
+
#{@given_code}
|
67
|
+
got
|
68
|
+
#{@new_code}
|
69
|
+
END
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def convert(&given_code)
|
74
|
+
Matchers::Convert.new(given_code)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require File.expand_path('../../lib/step_rewrite', __FILE__)
|
2
|
+
require File.expand_path('../convert_matcher', __FILE__)
|
3
|
+
|
4
|
+
describe StepRewrite::Rewriter do
|
5
|
+
describe "#process" do
|
6
|
+
context 'when it sees the special callback symbol &cb' do
|
7
|
+
subject { lambda { |sexp| StepRewrite::Rewriter.new(:cb).process(sexp) } }
|
8
|
+
|
9
|
+
it do
|
10
|
+
should convert {
|
11
|
+
foo(&cb)
|
12
|
+
bar
|
13
|
+
}.to {
|
14
|
+
foo { bar }
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when the special callback symbol is _ " do
|
20
|
+
|
21
|
+
subject { lambda { |sexp| StepRewrite::Rewriter.new(:_).process(sexp) } }
|
22
|
+
|
23
|
+
it do
|
24
|
+
should_not convert {
|
25
|
+
a = foo(1)
|
26
|
+
bar(a)
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
it do
|
31
|
+
should convert {
|
32
|
+
foo(&_)
|
33
|
+
bar
|
34
|
+
}.to {
|
35
|
+
foo { bar }
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
it do
|
40
|
+
should convert {
|
41
|
+
foo(&_)
|
42
|
+
bar
|
43
|
+
baz
|
44
|
+
}.to {
|
45
|
+
foo do
|
46
|
+
bar
|
47
|
+
baz
|
48
|
+
end
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
it do
|
53
|
+
should convert {
|
54
|
+
a = foo
|
55
|
+
bar
|
56
|
+
baz(a, &_)
|
57
|
+
}.to {
|
58
|
+
a = foo
|
59
|
+
bar
|
60
|
+
baz(a) {}
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
it do
|
65
|
+
should convert {
|
66
|
+
a = foo
|
67
|
+
bar(&_)
|
68
|
+
j = baz(a)
|
69
|
+
quux(j)
|
70
|
+
}.to {
|
71
|
+
a = foo
|
72
|
+
bar do
|
73
|
+
j = baz(a)
|
74
|
+
quux(j)
|
75
|
+
end
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
it do
|
80
|
+
should convert {
|
81
|
+
a = foo
|
82
|
+
bar(&_)
|
83
|
+
baz(a, &_)
|
84
|
+
quux
|
85
|
+
}.to {
|
86
|
+
a = foo
|
87
|
+
bar { baz(a) { quux } }
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
it do
|
92
|
+
should convert {
|
93
|
+
foo(a).bar(b, &_)
|
94
|
+
baz.qux(c, &_)
|
95
|
+
quux
|
96
|
+
corge(&_)
|
97
|
+
grault
|
98
|
+
}.to {
|
99
|
+
foo(a).bar(b) do
|
100
|
+
baz.qux(c) do
|
101
|
+
quux
|
102
|
+
corge { grault }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
}
|
106
|
+
end
|
107
|
+
|
108
|
+
it do
|
109
|
+
should convert {
|
110
|
+
begin
|
111
|
+
foo(&_)
|
112
|
+
bar
|
113
|
+
end until baz
|
114
|
+
}.to {
|
115
|
+
begin
|
116
|
+
foo { bar }
|
117
|
+
end until baz
|
118
|
+
}
|
119
|
+
end
|
120
|
+
|
121
|
+
it do
|
122
|
+
should convert {
|
123
|
+
a = foo(&_)
|
124
|
+
bar(a)
|
125
|
+
}.to {
|
126
|
+
foo { |a| bar(a) }
|
127
|
+
}
|
128
|
+
end
|
129
|
+
|
130
|
+
it do
|
131
|
+
should convert {
|
132
|
+
a = 1
|
133
|
+
begin
|
134
|
+
a = foo(&_)
|
135
|
+
bar(a)
|
136
|
+
end until baz
|
137
|
+
}.to {
|
138
|
+
a = 1
|
139
|
+
begin
|
140
|
+
foo { |a| bar(a) }
|
141
|
+
end until baz
|
142
|
+
}
|
143
|
+
end
|
144
|
+
|
145
|
+
it do
|
146
|
+
should convert {
|
147
|
+
a, b, c = foo(&_)
|
148
|
+
bar(a, b)
|
149
|
+
}.to {
|
150
|
+
foo { |a, b, c| bar(a, b) }
|
151
|
+
}
|
152
|
+
end
|
153
|
+
|
154
|
+
it do
|
155
|
+
should convert {
|
156
|
+
*a = foo(&_)
|
157
|
+
bar(a)
|
158
|
+
}.to {
|
159
|
+
foo { |*a| bar(a) }
|
160
|
+
}
|
161
|
+
end
|
162
|
+
|
163
|
+
it do
|
164
|
+
should convert {
|
165
|
+
a, *b = foo(&_)
|
166
|
+
bar(b)
|
167
|
+
}.to {
|
168
|
+
foo { |a, *b| bar(b) }
|
169
|
+
}
|
170
|
+
end
|
171
|
+
|
172
|
+
it do
|
173
|
+
should convert {
|
174
|
+
a.b = foo(&_)
|
175
|
+
bar(a)
|
176
|
+
}.to {
|
177
|
+
foo { |a.b| bar(a) }
|
178
|
+
}
|
179
|
+
end
|
180
|
+
|
181
|
+
it do
|
182
|
+
should convert {
|
183
|
+
a.b.c = foo(&_)
|
184
|
+
bar(a.b)
|
185
|
+
}.to {
|
186
|
+
foo { |a.b.c| bar(a.b) }
|
187
|
+
}
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path("../lib/step_rewrite/version", __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "step_rewrite"
|
6
|
+
s.version = StepRewrite::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Vishnu S Iyengar"]
|
9
|
+
s.email = %q{pathsny@gmail.com}
|
10
|
+
s.homepage = "http://rubygems.org/gems/step_rewrite"
|
11
|
+
s.summary = %q{A Gem to Rewrite Ruby code from a special syntax into an evented IO form}
|
12
|
+
s.description = %q{A Gem to Rewrite Ruby code from a special syntax into an evented IO form}
|
13
|
+
|
14
|
+
s.required_rubygems_version = ">= 1.3.6"
|
15
|
+
s.rubyforge_project = "step_rewrite"
|
16
|
+
|
17
|
+
s.add_development_dependency "bundler", ">= 1.0.0.rc.6"
|
18
|
+
s.add_development_dependency "rspec", "~> 2.0.0.beta.22"
|
19
|
+
s.add_dependency "sexp_processor", "~> 3.0.5"
|
20
|
+
s.add_dependency 'ruby2ruby', "~> 1.2.5"
|
21
|
+
s.add_dependency 'ParseTree', "~> 3.0.6"
|
22
|
+
|
23
|
+
|
24
|
+
s.files = `git ls-files`.split("\n")
|
25
|
+
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
26
|
+
s.require_path = 'lib'
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,168 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: step_rewrite
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Vishnu S Iyengar
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-10-16 00:00:00 +05:30
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: bundler
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 15424057
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
- rc
|
35
|
+
- 6
|
36
|
+
version: 1.0.0.rc.6
|
37
|
+
type: :development
|
38
|
+
version_requirements: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
name: rspec
|
41
|
+
prerelease: false
|
42
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
hash: 62196431
|
48
|
+
segments:
|
49
|
+
- 2
|
50
|
+
- 0
|
51
|
+
- 0
|
52
|
+
- beta
|
53
|
+
- 22
|
54
|
+
version: 2.0.0.beta.22
|
55
|
+
type: :development
|
56
|
+
version_requirements: *id002
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: sexp_processor
|
59
|
+
prerelease: false
|
60
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
hash: 13
|
66
|
+
segments:
|
67
|
+
- 3
|
68
|
+
- 0
|
69
|
+
- 5
|
70
|
+
version: 3.0.5
|
71
|
+
type: :runtime
|
72
|
+
version_requirements: *id003
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: ruby2ruby
|
75
|
+
prerelease: false
|
76
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ~>
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 21
|
82
|
+
segments:
|
83
|
+
- 1
|
84
|
+
- 2
|
85
|
+
- 5
|
86
|
+
version: 1.2.5
|
87
|
+
type: :runtime
|
88
|
+
version_requirements: *id004
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: ParseTree
|
91
|
+
prerelease: false
|
92
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
hash: 11
|
98
|
+
segments:
|
99
|
+
- 3
|
100
|
+
- 0
|
101
|
+
- 6
|
102
|
+
version: 3.0.6
|
103
|
+
type: :runtime
|
104
|
+
version_requirements: *id005
|
105
|
+
description: A Gem to Rewrite Ruby code from a special syntax into an evented IO form
|
106
|
+
email: pathsny@gmail.com
|
107
|
+
executables: []
|
108
|
+
|
109
|
+
extensions: []
|
110
|
+
|
111
|
+
extra_rdoc_files: []
|
112
|
+
|
113
|
+
files:
|
114
|
+
- .gitignore
|
115
|
+
- .idea/encodings.xml
|
116
|
+
- .idea/misc.xml
|
117
|
+
- .idea/modules.xml
|
118
|
+
- .idea/vcs.xml
|
119
|
+
- Gemfile
|
120
|
+
- Gemfile.lock
|
121
|
+
- README.textile
|
122
|
+
- Rakefile
|
123
|
+
- console
|
124
|
+
- lib/step_rewrite.rb
|
125
|
+
- lib/step_rewrite/rewriter.rb
|
126
|
+
- lib/step_rewrite/sexp_utilities.rb
|
127
|
+
- lib/step_rewrite/version.rb
|
128
|
+
- spec/convert_matcher.rb
|
129
|
+
- spec/step_rewrite_spec.rb
|
130
|
+
- step_rewrite.gemspec
|
131
|
+
has_rdoc: true
|
132
|
+
homepage: http://rubygems.org/gems/step_rewrite
|
133
|
+
licenses: []
|
134
|
+
|
135
|
+
post_install_message:
|
136
|
+
rdoc_options: []
|
137
|
+
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
version: "0"
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
hash: 23
|
155
|
+
segments:
|
156
|
+
- 1
|
157
|
+
- 3
|
158
|
+
- 6
|
159
|
+
version: 1.3.6
|
160
|
+
requirements: []
|
161
|
+
|
162
|
+
rubyforge_project: step_rewrite
|
163
|
+
rubygems_version: 1.3.7
|
164
|
+
signing_key:
|
165
|
+
specification_version: 3
|
166
|
+
summary: A Gem to Rewrite Ruby code from a special syntax into an evented IO form
|
167
|
+
test_files: []
|
168
|
+
|