ruby2js 1.1.5 → 1.2.0

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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ N2MxNDBkNGRmOTUxZmM0NjRlYWQ5N2RmODgzMTgxZTNiNDU2MDU4NA==
5
+ data.tar.gz: !binary |-
6
+ ZmFiMGY3NTM1MmViNTY4YjQ5OWQyYmMzMDQzZGYwZmFhOTY2ZDZiYg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MGMwY2ZlNWIzZWY5ZDdlOTQ1ZjUxMWNiMDZmMTczMjBiNmU0YTNjYWQ4ZDZm
10
+ MDBmZTcyZDkyNzJjMDIwNjQyN2E4ZWE3MTRhMzAwZDRhODFhY2IxNjgzYTY2
11
+ ZDUwNTg5MWJhNzRiMjlkNzE4MzEyYWJkOTc4YTQwZjFhOTNiMWY=
12
+ data.tar.gz: !binary |-
13
+ OTc3MjViYjAyY2Q3ZWIwMzA2ZGNjMjdkMDQ0OTc2YjVkYzk0ZDc3ZmEwODcw
14
+ YThkMGVlMmViNjFkZTNmYWJjMWNhZDg2ZDI5MDQ5NzU2ODZmZjBiMzQzZTdl
15
+ Yzg1Y2FkYTI5MzM1NmY1ZTViYjJmOTRmZTgyZWQyM2JmODZiNjc=
data/README.md CHANGED
@@ -133,6 +133,11 @@ the script.
133
133
  * `[-n]` becomes `[*.length-n]` for literal values of `n`
134
134
  * `[n..m]` becomes `slice(n,m+1)`
135
135
  * `[n...m]` becomes `slice(n,m)`
136
+ * `.empty?` becomes `.length == 0`
137
+ * `.clear!` becomes `.length = 0`
138
+ * `.include?` becomes `.indexOf() != -1`
139
+ * `.any?` becomes `.some`
140
+ * `.all?` becomes `.every`
136
141
  * `puts` becomes `console.log`
137
142
  * `each` becomes `forEach` unless jquery is included
138
143
  * `each_with_index` becomes `forEach`
@@ -27,14 +27,17 @@ module Ruby2JS
27
27
  end
28
28
  elsif m.type == :defs and m.children.first == s(:self)
29
29
  # class method definition: add to prototype
30
- s(:send, name, "#{m.children[1]}=",
31
- s(:block, s(:send, nil, :proc), *m.children[2..-1]))
30
+ s(:prototype, s(:send, name, "#{m.children[1]}=",
31
+ s(:block, s(:send, nil, :proc), *m.children[2..-1])))
32
32
  elsif m.type == :send and m.children.first == nil
33
33
  # class method call
34
34
  s(:send, name, *m.children[1..-1])
35
35
  elsif m.type == :lvasgn
36
36
  # class variable
37
37
  s(:send, name, "#{m.children[0]}=", *m.children[1..-1])
38
+ elsif m.type == :cvasgn
39
+ # class variable
40
+ s(:send, name, "_#{m.children[0][2..-1]}=", *m.children[1..-1])
38
41
  elsif m.type == :casgn and m.children[0] == nil
39
42
  # class constant
40
43
  s(:send, name, "#{m.children[1]}=", *m.children[2..-1])
@@ -58,6 +61,7 @@ module Ruby2JS
58
61
 
59
62
  # collapse sequence of methods to a single assignment
60
63
  if methods > 1
64
+ body.compact!
61
65
  pairs = body[0...methods].map do |node|
62
66
  s(:pair, s(:str, node.children[1].chomp('=')), node.children[2])
63
67
  end
@@ -70,11 +74,14 @@ module Ruby2JS
70
74
  body.unshift s(:def, parse(name), *init.children[1..-1])
71
75
 
72
76
  begin
77
+ # save class name
78
+ class_name, @class_name = @class_name, name
73
79
  # inhibit ivar substitution within a class definition. See ivars.rb
74
80
  ivars, self.ivars = self.ivars, nil
75
81
  parse s(:begin, *body.compact)
76
82
  ensure
77
83
  self.ivars = ivars
84
+ @class_name = class_name
78
85
  end
79
86
  end
80
87
  end
@@ -0,0 +1,16 @@
1
+ module Ruby2JS
2
+ class Converter
3
+
4
+ # (cvar :@@a)
5
+
6
+ handle :cvar do |var|
7
+ if @class_name
8
+ var.to_s.sub('@@', "#{parse @class_name}._")
9
+ elsif @prototype
10
+ var.to_s.sub('@@', 'this._')
11
+ else
12
+ var.to_s.sub('@@', 'this.constructor._')
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ module Ruby2JS
2
+ class Converter
3
+
4
+ # (cvasgn :@@a
5
+ # (int 1))
6
+
7
+ handle :cvasgn do |var, expression=nil|
8
+ if @class_name
9
+ var = var.to_s.sub('@@', "#{parse @class_name}._")
10
+ elsif @prototype
11
+ var = var.to_s.sub('@@', 'this._')
12
+ else
13
+ var = var.to_s.sub('@@', 'this.constructor._')
14
+ end
15
+
16
+ if expression
17
+ "#{ var } = #{ parse expression }"
18
+ else
19
+ var
20
+ end
21
+ end
22
+ end
23
+ end
@@ -10,10 +10,18 @@ module Ruby2JS
10
10
  # (...)
11
11
 
12
12
  handle :for do |var, expression, block|
13
- parse s(:block,
14
- s(:send, expression, :forEach),
15
- s(:args, s(:arg, var.children.last)),
16
- block);
13
+ if expression.type == :irange
14
+ "for (var #{parse var} = #{ parse expression.children.first }; " +
15
+ "#{ parse var } <= #{ parse expression.children.last }; " +
16
+ "#{ parse var }++) {#@nl#{ scope block }#@nl}"
17
+ elsif expression.type == :erange
18
+ "for (var #{parse var} = #{ parse expression.children.first }; " +
19
+ "#{ parse var } < #{ parse expression.children.last }; " +
20
+ "#{ parse var }++) {#@nl#{ scope block }#@nl}"
21
+ else
22
+ "for (var #{parse var} in #{ parse expression }) " +
23
+ "{#@nl#{ scope block }#@nl}"
24
+ end
17
25
  end
18
26
  end
19
27
  end
@@ -5,7 +5,10 @@ module Ruby2JS
5
5
 
6
6
  handle :ivar do |var|
7
7
  if self.ivars and self.ivars.include? var
8
- Ruby2JS.convert(self.ivars[var].inspect)
8
+ ruby2js = Ruby2JS::Converter.new(Ruby2JS.parse(self.ivars[var].inspect))
9
+ ruby2js.width = @width
10
+ ruby2js.enable_vertical_whitespace if @nl == "\n"
11
+ ruby2js.to_js
9
12
  else
10
13
  var.to_s.sub('@', 'this._')
11
14
  end
@@ -0,0 +1,17 @@
1
+ module Ruby2JS
2
+ class Converter
3
+
4
+ # (prototype expr)
5
+
6
+ # NOTE: prototype is a synthetic
7
+
8
+ handle :prototype do |expr|
9
+ begin
10
+ prototype, @prototype = @prototype, true
11
+ parse(expr)
12
+ ensure
13
+ @prototype = prototype
14
+ end
15
+ end
16
+ end
17
+ end
@@ -5,16 +5,38 @@ module Ruby2JS
5
5
  # (str "x")
6
6
  # (regopt :i))
7
7
 
8
- handle :regexp do |str, opt|
9
- str = str.children.first
10
- if str.include? '/'
11
- if opt.children.empty?
12
- "new RegExp(#{ str.inspect })"
13
- else
14
- "new RegExp(#{ str.inspect }, #{ opt.children.join.inspect})"
8
+ handle :regexp do |*parts, opt|
9
+ extended = false
10
+ opts = opt.children
11
+ if opts.include? :x
12
+ opts = opts.dup - [:x]
13
+ extended = true
14
+ end
15
+
16
+ if parts.all? {|part| part.type == :str}
17
+ str = parts.map {|part| part.children.first}.join
18
+ str = str.gsub(/ #.*/,'').gsub(/\s/,'') if extended
19
+ unless str.include? '/'
20
+ return "/#{ str }/#{ opts.join }"
21
+ end
22
+ str = str.inspect
23
+ else
24
+ parts.map! do |part|
25
+ if part.type == :str
26
+ str = part.children.first
27
+ str = str.gsub(/ #.*/,'').gsub(/\s/,'') if extended
28
+ str.inspect
29
+ else
30
+ parse part
31
+ end
15
32
  end
33
+ str = parts.join(' + ')
34
+ end
35
+
36
+ if opts.empty?
37
+ "new RegExp(#{ str })"
16
38
  else
17
- "/#{ str }/#{ opt.children.join }"
39
+ "new RegExp(#{ str }, #{ opts.join.inspect})"
18
40
  end
19
41
  end
20
42
  end
@@ -70,7 +70,30 @@ module Ruby2JS
70
70
  "#{ parse receiver }#{ '.' if receiver }#{ method.to_s.sub(/=$/, ' =') } #{ parse args.first }"
71
71
 
72
72
  elsif method == :new and receiver
73
+ # map Ruby's "Regexp" to JavaScript's "Regexp"
74
+ if receiver == s(:const, nil, :Regexp)
75
+ receiver = s(:const, nil, :RegExp)
76
+ end
77
+
78
+ # allow a RegExp to be constructed from another RegExp
79
+ if receiver == s(:const, nil, :RegExp)
80
+ if args.first.type == :regexp
81
+ opts = ''
82
+ if args.first.children.last.children.length > 0
83
+ opts = args.first.children.last.children.join
84
+ end
85
+
86
+ if args.length > 1
87
+ opts += args.last.children.last
88
+ end
89
+
90
+ return parse s(:regexp, *args.first.children[0...-1],
91
+ s(:regopt, *opts.split('').map(&:to_sym)))
92
+ end
93
+ end
94
+
73
95
  args = args.map {|a| parse a}.join(', ')
96
+
74
97
  if args.length > 0 or is_method?(ast)
75
98
  "new #{ parse receiver }(#{ args })"
76
99
  else
@@ -94,6 +117,9 @@ module Ruby2JS
94
117
  else
95
118
  parse s(:lvasgn, method), @state
96
119
  end
120
+ elsif args.length == 1 and args.first.type == :splat
121
+ parse s(:send, s(:attr, receiver, method), :apply, receiver,
122
+ args.first.children.first)
97
123
  elsif args.length > 0 and args.last.type == :splat
98
124
  parse s(:send, s(:attr, receiver, method), :apply, receiver,
99
125
  s(:send, s(:array, *args[0..-2]), :concat,
@@ -107,6 +107,8 @@ require 'ruby2js/converter/case'
107
107
  require 'ruby2js/converter/casgn'
108
108
  require 'ruby2js/converter/class'
109
109
  require 'ruby2js/converter/const'
110
+ require 'ruby2js/converter/cvar'
111
+ require 'ruby2js/converter/cvasgn'
110
112
  require 'ruby2js/converter/def'
111
113
  require 'ruby2js/converter/defs'
112
114
  require 'ruby2js/converter/defined'
@@ -125,6 +127,7 @@ require 'ruby2js/converter/next'
125
127
  require 'ruby2js/converter/nil'
126
128
  require 'ruby2js/converter/opasgn'
127
129
  require 'ruby2js/converter/orasgn'
130
+ require 'ruby2js/converter/prototype'
128
131
  require 'ruby2js/converter/regexp'
129
132
  require 'ruby2js/converter/return'
130
133
  require 'ruby2js/converter/self'
@@ -84,7 +84,8 @@ module Ruby2JS
84
84
  if name.children.first == nil
85
85
  block = [node.children.last]
86
86
  uses = extract_uses(block)
87
- node = process s(:class, name, node.children[1], s(:begin, *block))
87
+ node = s(:class, name, node.children[1],
88
+ s(:begin, *process_all(block)))
88
89
 
89
90
  @ngClassUses -= @ngClassOmit + [name.children.last]
90
91
  args = @ngClassUses.map {|sym| s(:arg, sym)} + uses
@@ -157,24 +158,29 @@ module Ruby2JS
157
158
  # AppName.filter :name do
158
159
  # return lambda {|input| return ... }
159
160
  # end
161
+ EXPRESSION = [ :and, :array, :attr, :const, :cvar, :defined?, :dstr,
162
+ :dsym, :false, :float, :gvar, :hash, :int, :ivar, :lvar, :nil, :not,
163
+ :or, :regexp, :self, :send, :str, :sym, :true, :undefined?, :xstr ]
164
+
160
165
  def ng_filter(node)
161
166
  call = node.children.first
162
167
 
163
168
  # insert return
164
169
  args = process_all(node.children[1].children)
165
170
  block = process_all(node.children[2..-1])
171
+ uses = @ngClassUses.uniq.map {|sym| s(:arg, sym)}
166
172
  tail = [block.pop || s(:nil)]
167
173
  while tail.length == 1 and tail.first.type == :begin
168
174
  tail = tail.first.children.dup
169
175
  end
170
- tail.push s(:return, tail.pop) unless tail.last.type == :return
176
+ tail.push s(:return, tail.pop) if EXPRESSION.include? tail.last.type
171
177
  block.push (tail.length == 1 ? tail.first : s(:begin, *tail))
172
178
 
173
179
  # construct a function returning a function
174
180
  inner = s(:block, s(:send, nil, :lambda), s(:args, *args), *block)
175
181
  outer = s(:send, s(:lvar, @ngApp), :filter, *call.children[2..-1])
176
182
 
177
- node.updated nil, [outer, s(:args), s(:return, inner)]
183
+ node.updated nil, [outer, s(:args, *uses), s(:return, inner)]
178
184
  end
179
185
 
180
186
  # input:
@@ -232,9 +238,14 @@ module Ruby2JS
232
238
  super
233
239
  end
234
240
 
241
+ BUILTINS = [ :Array, :Boolean, :Date, :Error, :Function, :Infinity, :JSON,
242
+ :Math, :NaN, :Number, :Object, :RegExp, :String ]
243
+
235
244
  def on_const(node)
236
- if @ngClassUses
237
- @ngClassUses << node.children.last if not node.children.first
245
+ if @ngClassUses and not node.children.first
246
+ unless BUILTINS.include? node.children.last
247
+ @ngClassUses << node.children.last
248
+ end
238
249
  end
239
250
 
240
251
  super
@@ -33,6 +33,16 @@ module Ruby2JS
33
33
  end
34
34
  node.updated nil, [source, :replace, before, after]
35
35
 
36
+ elsif node.children[1] == :empty? and node.children.length == 2
37
+ s(:send, s(:attr, node.children[0], :length), :==, s(:int, 0))
38
+
39
+ elsif node.children[1] == :clear! and node.children.length == 2
40
+ s(:send, node.children[0], :length=, s(:int, 0))
41
+
42
+ elsif node.children[1] == :include? and node.children.length == 3
43
+ s(:send, s(:send, node.children[0], :indexOf, node.children[2]),
44
+ :!=, s(:int, -1))
45
+
36
46
  elsif node.children[1] == :each
37
47
  if @each # disable `each` mapping, see jquery filter for an example
38
48
  super
@@ -98,10 +108,22 @@ module Ruby2JS
98
108
 
99
109
  def on_block(node)
100
110
  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]]
111
+ if [:setInterval, :setTimeout].include? call.children[1]
112
+ return super unless call.children.first == nil
113
+ block = process s(:block, s(:send, nil, :proc), *node.children[1..-1])
114
+ call.updated nil, [*call.children[0..1], block, *call.children[2..-1]]
115
+
116
+ elsif [:any?].include? call.children[1] and call.children.length == 2
117
+ call = call.updated nil, [call.children.first, :some]
118
+ node.updated nil, [call, *node.children[1..-1]]
119
+
120
+ elsif [:all?].include? call.children[1] and call.children.length == 2
121
+ call = call.updated nil, [call.children.first, :every]
122
+ node.updated nil, [call, *node.children[1..-1]]
123
+
124
+ else
125
+ super
126
+ end
105
127
  end
106
128
  end
107
129
 
@@ -1,8 +1,8 @@
1
1
  module Ruby2JS
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
- MINOR = 1
5
- TINY = 5
4
+ MINOR = 2
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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"
5
+ s.version = "1.2.0"
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-07"
9
+ s.date = "2013-12-18"
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/sinatra.rb", "lib/ruby2js/converter.rb", "lib/ruby2js/filter", "lib/ruby2js/filter/angular-route.rb", "lib/ruby2js/filter/jquery.rb", "lib/ruby2js/filter/return.rb", "lib/ruby2js/filter/angularrb.rb", "lib/ruby2js/filter/strict.rb", "lib/ruby2js/filter/functions.rb", "lib/ruby2js/filter/angular-resource.rb", "lib/ruby2js/converter", "lib/ruby2js/converter/ivasgn.rb", "lib/ruby2js/converter/self.rb", "lib/ruby2js/converter/undef.rb", "lib/ruby2js/converter/casgn.rb", "lib/ruby2js/converter/nil.rb", "lib/ruby2js/converter/logical.rb", "lib/ruby2js/converter/ivar.rb", "lib/ruby2js/converter/class.rb", "lib/ruby2js/converter/for.rb", "lib/ruby2js/converter/arg.rb", "lib/ruby2js/converter/literal.rb", "lib/ruby2js/converter/dstr.rb", "lib/ruby2js/converter/return.rb", "lib/ruby2js/converter/defined.rb", "lib/ruby2js/converter/boolean.rb", "lib/ruby2js/converter/next.rb", "lib/ruby2js/converter/array.rb", "lib/ruby2js/converter/def.rb", "lib/ruby2js/converter/args.rb", "lib/ruby2js/converter/regexp.rb", "lib/ruby2js/converter/var.rb", "lib/ruby2js/converter/defs.rb", "lib/ruby2js/converter/if.rb", "lib/ruby2js/converter/orasgn.rb", "lib/ruby2js/converter/masgn.rb", "lib/ruby2js/converter/hash.rb", "lib/ruby2js/converter/whilepost.rb", "lib/ruby2js/converter/break.rb", "lib/ruby2js/converter/opasgn.rb", "lib/ruby2js/converter/begin.rb", "lib/ruby2js/converter/xstr.rb", "lib/ruby2js/converter/vasgn.rb", "lib/ruby2js/converter/block.rb", "lib/ruby2js/converter/send.rb", "lib/ruby2js/converter/sym.rb", "lib/ruby2js/converter/case.rb", "lib/ruby2js/converter/kwbegin.rb", "lib/ruby2js/converter/const.rb", "lib/ruby2js/converter/module.rb", "lib/ruby2js/converter/until.rb", "lib/ruby2js/converter/untilpost.rb", "lib/ruby2js/converter/andasgn.rb", "lib/ruby2js/converter/blockpass.rb", "lib/ruby2js/converter/while.rb", "lib/ruby2js/cgi.rb", "lib/ruby2js/version.rb", "lib/ruby2js/rails.rb", "lib/ruby2js.rb"]
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/prototype.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/cvasgn.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/cvar.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 = "1.8.11"
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 = 3
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
5
- prerelease:
4
+ version: 1.2.0
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-07 00:00:00.000000000 Z
11
+ date: 2013-12-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: parser
16
- requirement: &15295760 !ruby/object:Gem::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: *15295760
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,88 @@ extra_rdoc_files: []
31
33
  files:
32
34
  - ruby2js.gemspec
33
35
  - README.md
34
- - lib/ruby2js/sinatra.rb
35
- - lib/ruby2js/converter.rb
36
- - lib/ruby2js/filter/angular-route.rb
37
- - lib/ruby2js/filter/jquery.rb
38
- - lib/ruby2js/filter/return.rb
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/defined.rb
57
- - lib/ruby2js/converter/boolean.rb
58
- - lib/ruby2js/converter/next.rb
59
- - lib/ruby2js/converter/array.rb
60
- - lib/ruby2js/converter/def.rb
42
+ - lib/ruby2js/converter/prototype.rb
43
+ - lib/ruby2js/converter/opasgn.rb
44
+ - lib/ruby2js/converter/xstr.rb
61
45
  - lib/ruby2js/converter/args.rb
62
- - lib/ruby2js/converter/regexp.rb
63
- - lib/ruby2js/converter/var.rb
64
46
  - lib/ruby2js/converter/defs.rb
47
+ - lib/ruby2js/converter/literal.rb
48
+ - lib/ruby2js/converter/array.rb
65
49
  - lib/ruby2js/converter/if.rb
66
- - lib/ruby2js/converter/orasgn.rb
67
- - lib/ruby2js/converter/masgn.rb
68
- - lib/ruby2js/converter/hash.rb
50
+ - lib/ruby2js/converter/nil.rb
51
+ - lib/ruby2js/converter/logical.rb
52
+ - lib/ruby2js/converter/next.rb
53
+ - lib/ruby2js/converter/while.rb
69
54
  - lib/ruby2js/converter/whilepost.rb
70
- - lib/ruby2js/converter/break.rb
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
55
+ - lib/ruby2js/converter/arg.rb
78
56
  - lib/ruby2js/converter/case.rb
79
- - lib/ruby2js/converter/kwbegin.rb
80
- - lib/ruby2js/converter/const.rb
57
+ - lib/ruby2js/converter/break.rb
58
+ - lib/ruby2js/converter/hash.rb
59
+ - lib/ruby2js/converter/for.rb
60
+ - lib/ruby2js/converter/boolean.rb
81
61
  - lib/ruby2js/converter/module.rb
62
+ - lib/ruby2js/converter/var.rb
63
+ - lib/ruby2js/converter/undef.rb
64
+ - lib/ruby2js/converter/blockpass.rb
82
65
  - lib/ruby2js/converter/until.rb
66
+ - lib/ruby2js/converter/regexp.rb
83
67
  - lib/ruby2js/converter/untilpost.rb
68
+ - lib/ruby2js/converter/masgn.rb
69
+ - lib/ruby2js/converter/cvasgn.rb
70
+ - lib/ruby2js/converter/block.rb
71
+ - lib/ruby2js/converter/ivar.rb
72
+ - lib/ruby2js/converter/send.rb
73
+ - lib/ruby2js/converter/vasgn.rb
74
+ - lib/ruby2js/converter/defined.rb
75
+ - lib/ruby2js/converter/def.rb
76
+ - lib/ruby2js/converter/sym.rb
77
+ - lib/ruby2js/converter/cvar.rb
78
+ - lib/ruby2js/converter/ivasgn.rb
79
+ - lib/ruby2js/converter/casgn.rb
80
+ - lib/ruby2js/converter/self.rb
84
81
  - lib/ruby2js/converter/andasgn.rb
85
- - lib/ruby2js/converter/blockpass.rb
86
- - lib/ruby2js/converter/while.rb
82
+ - lib/ruby2js/converter/begin.rb
83
+ - lib/ruby2js/converter/dstr.rb
84
+ - lib/ruby2js/converter/class.rb
87
85
  - lib/ruby2js/cgi.rb
88
- - lib/ruby2js/version.rb
89
- - lib/ruby2js/rails.rb
86
+ - lib/ruby2js/converter.rb
87
+ - lib/ruby2js/filter/return.rb
88
+ - lib/ruby2js/filter/strict.rb
89
+ - lib/ruby2js/filter/angularrb.rb
90
+ - lib/ruby2js/filter/angular-resource.rb
91
+ - lib/ruby2js/filter/functions.rb
92
+ - lib/ruby2js/filter/jquery.rb
93
+ - lib/ruby2js/filter/angular-route.rb
94
+ - lib/ruby2js/sinatra.rb
90
95
  - lib/ruby2js.rb
91
96
  homepage: http://github.com/rubys/ruby2js
92
97
  licenses:
93
98
  - MIT
99
+ metadata: {}
94
100
  post_install_message:
95
101
  rdoc_options: []
96
102
  require_paths:
97
103
  - lib
98
104
  required_ruby_version: !ruby/object:Gem::Requirement
99
- none: false
100
105
  requirements:
101
106
  - - ! '>='
102
107
  - !ruby/object:Gem::Version
103
108
  version: '0'
104
109
  required_rubygems_version: !ruby/object:Gem::Requirement
105
- none: false
106
110
  requirements:
107
111
  - - ! '>='
108
112
  - !ruby/object:Gem::Version
109
113
  version: '0'
110
114
  requirements: []
111
115
  rubyforge_project:
112
- rubygems_version: 1.8.11
116
+ rubygems_version: 2.0.7
113
117
  signing_key:
114
- specification_version: 3
118
+ specification_version: 4
115
119
  summary: Minimal yet extensible Ruby to JavaScript conversion.
116
120
  test_files: []