ruby2js 1.1.2 → 1.1.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.
- checksums.yaml +15 -0
- data/README.md +10 -6
- data/lib/ruby2js.rb +5 -0
- data/lib/ruby2js/converter.rb +1 -1
- data/lib/ruby2js/converter/class.rb +7 -1
- data/lib/ruby2js/converter/ivar.rb +5 -1
- data/lib/ruby2js/filter/angularrb.rb +40 -23
- data/lib/ruby2js/filter/functions.rb +8 -0
- data/lib/ruby2js/filter/jquery.rb +26 -2
- data/lib/ruby2js/version.rb +1 -1
- data/ruby2js.gemspec +5 -5
- metadata +56 -55
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NjUxMDkzZTNjNjc2NTYyYWVjOGNjMjZhNjU4YjgxMzEyZjBiYWU5OA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YmQyYmI3ZjJlMTQwNjQ2NzIzZGUwZTk2MThhODA5ZmFkMjEwYWEwOA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MmY5OWVlZWRmNDliY2MxOTRmNzk4ZmQ2YTI5MTg2N2Q0ODJmNWE0MDk3NzAw
|
10
|
+
OTBkMjJmN2YzMjc0OTYyZmUyMjA2Y2E0YmZjZDZhNGZkMDEwOWVkOTk3NWI2
|
11
|
+
NWFmZmJmNjg4ZTM3N2U1YzU0YjYyNjI0NzRmNDZlOWVmOWMyZDI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YmJkYmJlMjBlNDE0OGJlMDY3Njg0YjQwMWNjZjJjMzBmMzE3NTVkNzcxZjcz
|
14
|
+
MWIzZGI0ZGMwN2ZhMjAwODQ4MjM0MTU0NGUxMDVlMzIyYzlhNmY3MzhkM2E5
|
15
|
+
ZjdmNjVlYTJlYzg2Y2RjNDYwOGNhZjNhNjhmZDFlNzFhMTA5OTA=
|
data/README.md
CHANGED
@@ -45,8 +45,8 @@ Introduction
|
|
45
45
|
---
|
46
46
|
|
47
47
|
JavaScript is a language where `0` is considered `false`, strings are
|
48
|
-
immutable, and the
|
49
|
-
|
48
|
+
immutable, and the behaviors for operators like `==` are, at best,
|
49
|
+
[convoluted](http://zero.milosz.ca/).
|
50
50
|
|
51
51
|
Any attempt to bridge the semantics of Ruby and JavaScript will involve
|
52
52
|
trade-offs. Consider the following expression:
|
@@ -57,7 +57,7 @@ a[-1]
|
|
57
57
|
|
58
58
|
Programmers who are familiar with Ruby will recognize that this returns the
|
59
59
|
last element (or character) of an array (or string). However, the meaning is
|
60
|
-
quite different if a is a Hash.
|
60
|
+
quite different if `a` is a Hash.
|
61
61
|
|
62
62
|
One way to resolve this is to change the way indexing operators are evaluated,
|
63
63
|
and to provide a runtime library that adds properties to global JavaScript
|
@@ -104,9 +104,9 @@ includes three such integrations:
|
|
104
104
|
* [Sinatra](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/sinatra.rb)
|
105
105
|
* [Rails](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/rails.rb)
|
106
106
|
|
107
|
-
As you might expect, CGI is a bit sluggish. By constrast, Sinatra
|
108
|
-
|
109
|
-
|
107
|
+
As you might expect, CGI is a bit sluggish. By constrast, Sinatra are quite
|
108
|
+
speedy as the bulk of the time is spend on the initial load of the required
|
109
|
+
libraries.
|
110
110
|
|
111
111
|
Filters
|
112
112
|
---
|
@@ -136,12 +136,16 @@ the script.
|
|
136
136
|
* `puts` becomes `console.log`
|
137
137
|
* `each` becomes `forEach` unless jquery is included
|
138
138
|
* `each_with_index` becomes `forEach`
|
139
|
+
* `setInterval` and `setTimeout` allow block to be treated as the
|
140
|
+
first parameter on the call
|
139
141
|
|
140
142
|
* [jquery](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/filter/jquery.rb)
|
141
143
|
|
142
144
|
* maps Ruby unary operator `~` to jQuery `$` function
|
143
145
|
* maps Ruby attribute syntax to jquery attribute syntax
|
144
146
|
* maps `$$` to jQuery `$` function
|
147
|
+
* defaults fourth parameter of $$.post to :jquery, allowing Ruby block
|
148
|
+
syntax to be used for the success function.
|
145
149
|
|
146
150
|
* [angularrb](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/filter/angularrb.rb)
|
147
151
|
|
data/lib/ruby2js.rb
CHANGED
@@ -39,6 +39,11 @@ module Ruby2JS
|
|
39
39
|
ruby2js = Ruby2JS::Converter.new( ast )
|
40
40
|
|
41
41
|
ruby2js.binding = options[:binding]
|
42
|
+
ruby2js.ivars = options[:ivars]
|
43
|
+
if ruby2js.binding and not ruby2js.ivars
|
44
|
+
ruby2js.ivars = ruby2js.binding.eval \
|
45
|
+
'Hash[instance_variables.map {|var| [var, instance_variable_get(var)]}]'
|
46
|
+
end
|
42
47
|
|
43
48
|
if source.include? "\n"
|
44
49
|
ruby2js.enable_vertical_whitespace
|
data/lib/ruby2js/converter.rb
CHANGED
@@ -6,7 +6,7 @@ module Ruby2JS
|
|
6
6
|
OPERATORS = [:[], :[]=], [:not, :!], [:*, :/, :%], [:+, :-], [:>>, :<<],
|
7
7
|
[:<=, :<, :>, :>=], [:==, :!=, :===, :"!=="], [:and, :or]
|
8
8
|
|
9
|
-
attr_accessor :binding
|
9
|
+
attr_accessor :binding, :ivars
|
10
10
|
|
11
11
|
def initialize( ast, vars = {} )
|
12
12
|
@ast, @vars = ast, vars.dup
|
@@ -69,7 +69,13 @@ module Ruby2JS
|
|
69
69
|
# prepend constructor
|
70
70
|
body.unshift s(:def, parse(name), *init.children[1..-1])
|
71
71
|
|
72
|
-
|
72
|
+
begin
|
73
|
+
# inhibit ivar substitution within a class definition. See ivars.rb
|
74
|
+
ivars, self.ivars = self.ivars, nil
|
75
|
+
parse s(:begin, *body.compact)
|
76
|
+
ensure
|
77
|
+
self.ivars = ivars
|
78
|
+
end
|
73
79
|
end
|
74
80
|
end
|
75
81
|
end
|
@@ -32,27 +32,13 @@ module Ruby2JS
|
|
32
32
|
return super unless parent_name.children == [nil, :Angular]
|
33
33
|
|
34
34
|
@ngApp = module_name.children[1]
|
35
|
-
@ngChildren = node.children
|
35
|
+
@ngChildren = node.children[1..-1]
|
36
|
+
while @ngChildren.length == 1 and @ngChildren.first and @ngChildren.first.type == :begin
|
37
|
+
@ngChildren = @ngChildren.first.children.dup
|
38
|
+
end
|
36
39
|
@ngAppUses = []
|
37
40
|
|
38
|
-
# find the block
|
39
41
|
block = process_all(node.children[1..-1])
|
40
|
-
while block.length == 1 and block.first and block.first.type == :begin
|
41
|
-
block = block.first.children.dup
|
42
|
-
end
|
43
|
-
|
44
|
-
factories = []
|
45
|
-
block.compact.each do |child|
|
46
|
-
if child.type == :class and child.children.first.children.first == nil
|
47
|
-
name = child.children.first
|
48
|
-
if name.children.first == nil
|
49
|
-
name = name.children.last
|
50
|
-
factories << on_block(s(:block, s(:send, nil, :factory,
|
51
|
-
s(:sym, name)), s(:args), s(:return, s(:const, nil, name))))
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
block += factories
|
56
42
|
|
57
43
|
# convert use calls into dependencies
|
58
44
|
depends = @ngAppUses.map {|sym| s(:sym, sym)} + extract_uses(block)
|
@@ -85,10 +71,40 @@ module Ruby2JS
|
|
85
71
|
s(:begin, s(:casgn, nil, name, app), *block)), :[])
|
86
72
|
end
|
87
73
|
|
74
|
+
# input:
|
75
|
+
# class name {...}
|
76
|
+
#
|
77
|
+
# output:
|
78
|
+
# app.factory(uses) do
|
79
|
+
# ...
|
80
|
+
# end
|
81
|
+
def on_class(node)
|
82
|
+
return super unless @ngApp and @ngChildren.include? node
|
83
|
+
name = node.children.first
|
84
|
+
if name.children.first == nil
|
85
|
+
block = [node.children.last]
|
86
|
+
uses = extract_uses(block)
|
87
|
+
node = process s(:class, name, node.children[1], s(:begin, *block))
|
88
|
+
|
89
|
+
@ngClassUses -= @ngClassOmit + [name.children.last]
|
90
|
+
args = @ngClassUses.map {|sym| s(:arg, sym)} + uses
|
91
|
+
args = args.map {|node| node.children.first.to_sym}.uniq.
|
92
|
+
map {|sym| s(:arg, sym)}
|
93
|
+
@ngClassUses, @ngClassOmit = [], []
|
94
|
+
|
95
|
+
s(:block, s(:send, s(:lvar, @ngApp), :factory,
|
96
|
+
s(:sym, name.children.last)), s(:args, *args),
|
97
|
+
s(:begin, node, s(:return, s(:const, nil, name.children.last))))
|
98
|
+
else
|
99
|
+
super
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
88
103
|
# input:
|
89
104
|
# filter :name { ... }
|
90
105
|
# controller :name { ... }
|
91
106
|
# factory :name { ... }
|
107
|
+
# directive :name { ... }
|
92
108
|
|
93
109
|
def on_block(node)
|
94
110
|
return super unless @ngApp
|
@@ -119,11 +135,7 @@ module Ruby2JS
|
|
119
135
|
target = target.updated(nil, [s(:lvar, @ngApp),
|
120
136
|
*target.children[1..-1]])
|
121
137
|
|
122
|
-
# find the block
|
123
138
|
block = process_all(node.children[2..-1])
|
124
|
-
while block.length == 1 and block.first.type == :begin
|
125
|
-
block = block.first.children.dup
|
126
|
-
end
|
127
139
|
|
128
140
|
# convert use calls into args
|
129
141
|
@ngClassUses -= @ngClassOmit
|
@@ -131,7 +143,7 @@ module Ruby2JS
|
|
131
143
|
args += @ngClassUses.map {|sym| s(:arg, sym)} + extract_uses(block)
|
132
144
|
args = args.map {|node| node.children.first.to_sym}.uniq.
|
133
145
|
map {|sym| s(:arg, sym)}
|
134
|
-
@ngClassUses
|
146
|
+
@ngClassUses, @ngClassOmit = [], []
|
135
147
|
|
136
148
|
node.updated :block, [target, s(:args, *args), s(:begin, *block)]
|
137
149
|
end
|
@@ -229,6 +241,11 @@ module Ruby2JS
|
|
229
241
|
end
|
230
242
|
|
231
243
|
def extract_uses(block)
|
244
|
+
# find the block
|
245
|
+
while block.length == 1 and block.first and block.first.type == :begin
|
246
|
+
block.push *block.shift.children
|
247
|
+
end
|
248
|
+
|
232
249
|
# find use class method calls
|
233
250
|
uses = block.find_all do |node|
|
234
251
|
node and node.type == :send and node.children[0..1] == [nil, :use]
|
@@ -95,6 +95,14 @@ module Ruby2JS
|
|
95
95
|
super
|
96
96
|
end
|
97
97
|
end
|
98
|
+
|
99
|
+
def on_block(node)
|
100
|
+
call = node.children.first
|
101
|
+
return super unless call.children.first == nil
|
102
|
+
return super unless [:setInterval, :setTimeout].include? call.children[1]
|
103
|
+
block = process s(:block, s(:send, nil, :proc), *node.children[1..-1])
|
104
|
+
call.updated nil, [*call.children[0..1], block, *call.children[2..-1]]
|
105
|
+
end
|
98
106
|
end
|
99
107
|
|
100
108
|
DEFAULTS.push Functions
|
@@ -23,10 +23,13 @@ require 'ruby2js'
|
|
23
23
|
# Of course, using jQuery's style of getter and setter calls is supported,
|
24
24
|
# and indeed is convenient when using method chaining.
|
25
25
|
#
|
26
|
-
#
|
27
|
-
# (~~ is a common Ruby idiom for Math.floor, ~~~ will return the binary
|
26
|
+
# Additionally, the tilde AST rewriting can be avoided by using consecutive
|
27
|
+
# tildes (~~ is a common Ruby idiom for Math.floor, ~~~ will return the binary
|
28
28
|
# one's complement.); and the getter and setter AST rewriting can be avoided
|
29
29
|
# by the use of parenthesis, e.g. (~this).text.
|
30
|
+
#
|
31
|
+
# Finally, the fourth parameter of $.post defaults to :json, allowing Ruby
|
32
|
+
# block syntax to be used for the success function.
|
30
33
|
#
|
31
34
|
# Some examples of before/after conversions:
|
32
35
|
#
|
@@ -149,6 +152,27 @@ module Ruby2JS
|
|
149
152
|
super
|
150
153
|
end
|
151
154
|
end
|
155
|
+
|
156
|
+
# Example conversion:
|
157
|
+
# before:
|
158
|
+
# $$.post ... do ... end
|
159
|
+
# (block (send (gvar :$$) :post ...) (args) (...))
|
160
|
+
# after:
|
161
|
+
# $$.post ..., proc { ... }, :json
|
162
|
+
# (send (gvar :$$) :post ...
|
163
|
+
# (block (send nil :proc) (args) (...)) (:sym :json))
|
164
|
+
def on_block(node)
|
165
|
+
call = node.children.first
|
166
|
+
return super unless call.children.first == s(:gvar, :$$)
|
167
|
+
return super unless call.children[1] == :post
|
168
|
+
return super unless call.children.length <= 4
|
169
|
+
children = call.children.dup
|
170
|
+
children << s(:str, '') if children.length <= 2
|
171
|
+
children << s(:hash) if children.length <= 3
|
172
|
+
children << s(:block, s(:send, nil, :proc), *node.children[1..-1])
|
173
|
+
children << s(:sym, :json)
|
174
|
+
process call.updated nil, children
|
175
|
+
end
|
152
176
|
end
|
153
177
|
|
154
178
|
DEFAULTS.push JQuery
|
data/lib/ruby2js/version.rb
CHANGED
data/ruby2js.gemspec
CHANGED
@@ -2,22 +2,22 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "ruby2js"
|
5
|
-
s.version = "1.1.
|
5
|
+
s.version = "1.1.3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Sam Ruby"]
|
9
|
-
s.date = "2013-12-
|
9
|
+
s.date = "2013-12-02"
|
10
10
|
s.description = " The base package maps Ruby syntax to JavaScript semantics.\n Filters may be provided to add Ruby-specific or framework specific\n behavior.\n"
|
11
11
|
s.email = "rubys@intertwingly.net"
|
12
|
-
s.files = ["ruby2js.gemspec", "README.md", "lib/ruby2js", "lib/ruby2js/
|
12
|
+
s.files = ["ruby2js.gemspec", "README.md", "lib/ruby2js", "lib/ruby2js/rails.rb", "lib/ruby2js/version.rb", "lib/ruby2js/converter", "lib/ruby2js/converter/orasgn.rb", "lib/ruby2js/converter/kwbegin.rb", "lib/ruby2js/converter/const.rb", "lib/ruby2js/converter/return.rb", "lib/ruby2js/converter/opasgn.rb", "lib/ruby2js/converter/xstr.rb", "lib/ruby2js/converter/args.rb", "lib/ruby2js/converter/defs.rb", "lib/ruby2js/converter/literal.rb", "lib/ruby2js/converter/array.rb", "lib/ruby2js/converter/if.rb", "lib/ruby2js/converter/nil.rb", "lib/ruby2js/converter/logical.rb", "lib/ruby2js/converter/next.rb", "lib/ruby2js/converter/while.rb", "lib/ruby2js/converter/whilepost.rb", "lib/ruby2js/converter/arg.rb", "lib/ruby2js/converter/case.rb", "lib/ruby2js/converter/break.rb", "lib/ruby2js/converter/hash.rb", "lib/ruby2js/converter/for.rb", "lib/ruby2js/converter/boolean.rb", "lib/ruby2js/converter/module.rb", "lib/ruby2js/converter/var.rb", "lib/ruby2js/converter/undef.rb", "lib/ruby2js/converter/blockpass.rb", "lib/ruby2js/converter/until.rb", "lib/ruby2js/converter/regexp.rb", "lib/ruby2js/converter/untilpost.rb", "lib/ruby2js/converter/masgn.rb", "lib/ruby2js/converter/block.rb", "lib/ruby2js/converter/ivar.rb", "lib/ruby2js/converter/send.rb", "lib/ruby2js/converter/vasgn.rb", "lib/ruby2js/converter/defined.rb", "lib/ruby2js/converter/def.rb", "lib/ruby2js/converter/sym.rb", "lib/ruby2js/converter/ivasgn.rb", "lib/ruby2js/converter/casgn.rb", "lib/ruby2js/converter/self.rb", "lib/ruby2js/converter/andasgn.rb", "lib/ruby2js/converter/begin.rb", "lib/ruby2js/converter/dstr.rb", "lib/ruby2js/converter/class.rb", "lib/ruby2js/cgi.rb", "lib/ruby2js/converter.rb", "lib/ruby2js/filter", "lib/ruby2js/filter/return.rb", "lib/ruby2js/filter/strict.rb", "lib/ruby2js/filter/angularrb.rb", "lib/ruby2js/filter/angular-resource.rb", "lib/ruby2js/filter/functions.rb", "lib/ruby2js/filter/jquery.rb", "lib/ruby2js/filter/angular-route.rb", "lib/ruby2js/sinatra.rb", "lib/ruby2js.rb"]
|
13
13
|
s.homepage = "http://github.com/rubys/ruby2js"
|
14
14
|
s.licenses = ["MIT"]
|
15
15
|
s.require_paths = ["lib"]
|
16
|
-
s.rubygems_version = "
|
16
|
+
s.rubygems_version = "2.0.7"
|
17
17
|
s.summary = "Minimal yet extensible Ruby to JavaScript conversion."
|
18
18
|
|
19
19
|
if s.respond_to? :specification_version then
|
20
|
-
s.specification_version =
|
20
|
+
s.specification_version = 4
|
21
21
|
|
22
22
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
23
23
|
s.add_runtime_dependency(%q<parser>, [">= 0"])
|
metadata
CHANGED
@@ -1,27 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby2js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sam Ruby
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: parser
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
description: ! " The base package maps Ruby syntax to JavaScript semantics.\n Filters
|
26
28
|
may be provided to add Ruby-specific or framework specific\n behavior.\n"
|
27
29
|
email: rubys@intertwingly.net
|
@@ -31,86 +33,85 @@ extra_rdoc_files: []
|
|
31
33
|
files:
|
32
34
|
- ruby2js.gemspec
|
33
35
|
- README.md
|
34
|
-
- lib/ruby2js/
|
35
|
-
- lib/ruby2js/
|
36
|
-
- lib/ruby2js/
|
37
|
-
- lib/ruby2js/
|
38
|
-
- lib/ruby2js/
|
39
|
-
- lib/ruby2js/filter/angularrb.rb
|
40
|
-
- lib/ruby2js/filter/strict.rb
|
41
|
-
- lib/ruby2js/filter/functions.rb
|
42
|
-
- lib/ruby2js/filter/angular-resource.rb
|
43
|
-
- lib/ruby2js/converter/ivasgn.rb
|
44
|
-
- lib/ruby2js/converter/self.rb
|
45
|
-
- lib/ruby2js/converter/undef.rb
|
46
|
-
- lib/ruby2js/converter/casgn.rb
|
47
|
-
- lib/ruby2js/converter/nil.rb
|
48
|
-
- lib/ruby2js/converter/logical.rb
|
49
|
-
- lib/ruby2js/converter/ivar.rb
|
50
|
-
- lib/ruby2js/converter/class.rb
|
51
|
-
- lib/ruby2js/converter/for.rb
|
52
|
-
- lib/ruby2js/converter/arg.rb
|
53
|
-
- lib/ruby2js/converter/literal.rb
|
54
|
-
- lib/ruby2js/converter/dstr.rb
|
36
|
+
- lib/ruby2js/rails.rb
|
37
|
+
- lib/ruby2js/version.rb
|
38
|
+
- lib/ruby2js/converter/orasgn.rb
|
39
|
+
- lib/ruby2js/converter/kwbegin.rb
|
40
|
+
- lib/ruby2js/converter/const.rb
|
55
41
|
- lib/ruby2js/converter/return.rb
|
56
|
-
- lib/ruby2js/converter/
|
57
|
-
- lib/ruby2js/converter/
|
58
|
-
- lib/ruby2js/converter/next.rb
|
59
|
-
- lib/ruby2js/converter/array.rb
|
60
|
-
- lib/ruby2js/converter/def.rb
|
42
|
+
- lib/ruby2js/converter/opasgn.rb
|
43
|
+
- lib/ruby2js/converter/xstr.rb
|
61
44
|
- lib/ruby2js/converter/args.rb
|
62
|
-
- lib/ruby2js/converter/regexp.rb
|
63
|
-
- lib/ruby2js/converter/var.rb
|
64
45
|
- lib/ruby2js/converter/defs.rb
|
46
|
+
- lib/ruby2js/converter/literal.rb
|
47
|
+
- lib/ruby2js/converter/array.rb
|
65
48
|
- lib/ruby2js/converter/if.rb
|
66
|
-
- lib/ruby2js/converter/
|
67
|
-
- lib/ruby2js/converter/
|
68
|
-
- lib/ruby2js/converter/
|
49
|
+
- lib/ruby2js/converter/nil.rb
|
50
|
+
- lib/ruby2js/converter/logical.rb
|
51
|
+
- lib/ruby2js/converter/next.rb
|
52
|
+
- lib/ruby2js/converter/while.rb
|
69
53
|
- lib/ruby2js/converter/whilepost.rb
|
70
|
-
- lib/ruby2js/converter/
|
71
|
-
- lib/ruby2js/converter/opasgn.rb
|
72
|
-
- lib/ruby2js/converter/begin.rb
|
73
|
-
- lib/ruby2js/converter/xstr.rb
|
74
|
-
- lib/ruby2js/converter/vasgn.rb
|
75
|
-
- lib/ruby2js/converter/block.rb
|
76
|
-
- lib/ruby2js/converter/send.rb
|
77
|
-
- lib/ruby2js/converter/sym.rb
|
54
|
+
- lib/ruby2js/converter/arg.rb
|
78
55
|
- lib/ruby2js/converter/case.rb
|
79
|
-
- lib/ruby2js/converter/
|
80
|
-
- lib/ruby2js/converter/
|
56
|
+
- lib/ruby2js/converter/break.rb
|
57
|
+
- lib/ruby2js/converter/hash.rb
|
58
|
+
- lib/ruby2js/converter/for.rb
|
59
|
+
- lib/ruby2js/converter/boolean.rb
|
81
60
|
- lib/ruby2js/converter/module.rb
|
61
|
+
- lib/ruby2js/converter/var.rb
|
62
|
+
- lib/ruby2js/converter/undef.rb
|
63
|
+
- lib/ruby2js/converter/blockpass.rb
|
82
64
|
- lib/ruby2js/converter/until.rb
|
65
|
+
- lib/ruby2js/converter/regexp.rb
|
83
66
|
- lib/ruby2js/converter/untilpost.rb
|
67
|
+
- lib/ruby2js/converter/masgn.rb
|
68
|
+
- lib/ruby2js/converter/block.rb
|
69
|
+
- lib/ruby2js/converter/ivar.rb
|
70
|
+
- lib/ruby2js/converter/send.rb
|
71
|
+
- lib/ruby2js/converter/vasgn.rb
|
72
|
+
- lib/ruby2js/converter/defined.rb
|
73
|
+
- lib/ruby2js/converter/def.rb
|
74
|
+
- lib/ruby2js/converter/sym.rb
|
75
|
+
- lib/ruby2js/converter/ivasgn.rb
|
76
|
+
- lib/ruby2js/converter/casgn.rb
|
77
|
+
- lib/ruby2js/converter/self.rb
|
84
78
|
- lib/ruby2js/converter/andasgn.rb
|
85
|
-
- lib/ruby2js/converter/
|
86
|
-
- lib/ruby2js/converter/
|
79
|
+
- lib/ruby2js/converter/begin.rb
|
80
|
+
- lib/ruby2js/converter/dstr.rb
|
81
|
+
- lib/ruby2js/converter/class.rb
|
87
82
|
- lib/ruby2js/cgi.rb
|
88
|
-
- lib/ruby2js/
|
89
|
-
- lib/ruby2js/
|
83
|
+
- lib/ruby2js/converter.rb
|
84
|
+
- lib/ruby2js/filter/return.rb
|
85
|
+
- lib/ruby2js/filter/strict.rb
|
86
|
+
- lib/ruby2js/filter/angularrb.rb
|
87
|
+
- lib/ruby2js/filter/angular-resource.rb
|
88
|
+
- lib/ruby2js/filter/functions.rb
|
89
|
+
- lib/ruby2js/filter/jquery.rb
|
90
|
+
- lib/ruby2js/filter/angular-route.rb
|
91
|
+
- lib/ruby2js/sinatra.rb
|
90
92
|
- lib/ruby2js.rb
|
91
93
|
homepage: http://github.com/rubys/ruby2js
|
92
94
|
licenses:
|
93
95
|
- MIT
|
96
|
+
metadata: {}
|
94
97
|
post_install_message:
|
95
98
|
rdoc_options: []
|
96
99
|
require_paths:
|
97
100
|
- lib
|
98
101
|
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
102
|
requirements:
|
101
103
|
- - ! '>='
|
102
104
|
- !ruby/object:Gem::Version
|
103
105
|
version: '0'
|
104
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
107
|
requirements:
|
107
108
|
- - ! '>='
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: '0'
|
110
111
|
requirements: []
|
111
112
|
rubyforge_project:
|
112
|
-
rubygems_version:
|
113
|
+
rubygems_version: 2.0.7
|
113
114
|
signing_key:
|
114
|
-
specification_version:
|
115
|
+
specification_version: 4
|
115
116
|
summary: Minimal yet extensible Ruby to JavaScript conversion.
|
116
117
|
test_files: []
|