ruby2js 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzY5MTI2YzczYzk3NTUwMjczNzk1MzBiOTQ2Yjg4NTE1OGFhN2VjNQ==
4
+ NTFjZjRmN2VhMTYwOWUxNTM3ZTZlNjE2NzI2NTUzMGZjMDQ5NTlkNg==
5
5
  data.tar.gz: !binary |-
6
- YjVlMWM3ZWI3ODZkNTdkNmE2OTQ0NzhkNzJjMGI4NmQwNzZhOTcxYQ==
6
+ NWE4OTZhMDMzMDBiYjNkNTQwYWE2NmYxM2I5ZDZhZGJlNGU2ZmEyMg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NmJhNDY0ZmNlMjAwNzk4NDUxMTViYjJjNzViMjRhYzQxZTI4YTI4NTg3MWMw
10
- MzUxOGU0NTVmZGI5NDcwN2VlMTQ4MmNlOGQzM2QwZmExNmUxYTliOWI2YTdi
11
- MzlkOTgxNDM1YmFhNDRkMDAzZjdkNThiZjc4NzQ5NDFmODlkOWI=
9
+ YTBiZDljMDhmODZjMjdjOWNjMmNmOTU5MjBmOTA0ODJlMjcyOWQ4NTkyN2Ux
10
+ YjQyNzI0NmRlMjQyMjEzODkzZTYwNTliN2U5ZGMxMDQ5MzJmNWRhMjVjMmVk
11
+ Y2Q0YTZmNmRiNTE3ZGFhMGE2ZDBkNmNjYjlhOWZkMTY0NWZjMjI=
12
12
  data.tar.gz: !binary |-
13
- OGJlNzI1NTBjYzM0ODkwMjAxZTY0NmIwMGYzYTMxMzJhYjA3NjcyMTQ0MjU1
14
- MzdiOWMzNDQxOGZlNmRjMmIyYWYzZmU5YjFhZDY0NGQzMzI0MjU3NjIwYzMx
15
- OTNlODVkZWM0YmVmNzhiMWFkZWU3NGY4NmZiNGFjNmNmNGQ3YWM=
13
+ MTVjMTE5NTQyNjdlOTY5YmQ3ZjMwNTQwY2RiM2MxZjQ3Y2U4MWFiMDZkYTQx
14
+ MzUxYWE4MmI0NGIzZWRmNGI4NDZlZDFiYjY0MDRjZTIxMTczNjRhMTg3YTNk
15
+ Y2RhZDcxMDRhNmVhMWQ3YjFhMmM3N2MwODM4ZmJhOTc5MTYwNjk=
data/README.md CHANGED
@@ -141,8 +141,11 @@ the script.
141
141
  * `.any?` becomes `.some`
142
142
  * `.chr` becomes `fromCharCode`
143
143
  * `.clear` becomes `.length = 0`
144
+ * `.delete` becomes `delete target[arg]`
145
+ * `.downcase` becomes `.toLowerCase`
144
146
  * `.each` becomes `forEach`
145
- * `.each_with_index` becomes `forEach`
147
+ * `.each_with_index` becomes `.forEach`
148
+ * `.end_with?` becomes `.slice(-arg.length) == arg`
146
149
  * `.empty?` becomes `.length == 0`
147
150
  * `.first` becomes `[0]`
148
151
  * `.first(n)` becomes `.slice(0, n)`
@@ -156,11 +159,13 @@ the script.
156
159
  * `.ord` becomes `charCodeAt(0)`
157
160
  * `puts` becomes `console.log`
158
161
  * `.replace` becomes `.length = 0; ...push.apply(*)`
159
- * `.sub` becomes `replace`
162
+ * `.start_with?` becomes `.substring(0, arg.length) == arg`
163
+ * `.sub` becomes `.replace`
160
164
  * `.to_a` becomes `to_Array`
161
165
  * `.to_f` becomes `parseFloat`
162
166
  * `.to_i` becomes `parseInt`
163
- * `.to_s` becomes `to_String`
167
+ * `.to_s` becomes `.to_String`
168
+ * `.upcase` becomes `.toUpperCase`
164
169
  * `[-n]` becomes `[*.length-n]` for literal values of `n`
165
170
  * `[n...m]` becomes `.slice(n,m)`
166
171
  * `[n..m]` becomes `.slice(n,m+1)`
@@ -9,13 +9,19 @@ module Ruby2JS
9
9
  # NOTE: :prop and :method macros are defined at the bottom of this file
10
10
 
11
11
  handle :class do |name, inheritance, *body|
12
- init = s(:def, :initialize, s(:args))
12
+ if inheritance
13
+ init = s(:def, :initialize, s(:args), s(:super))
14
+ else
15
+ init = s(:def, :initialize, s(:args))
16
+ end
17
+
13
18
  body.compact!
14
19
 
15
20
  if body.length == 1 and body.first.type == :begin
16
21
  body = body.first.children.dup
17
22
  end
18
23
 
24
+ body.compact!
19
25
  body.map! do |m|
20
26
  if m.type == :def
21
27
  if m.children.first == :initialize
@@ -45,10 +51,28 @@ module Ruby2JS
45
51
  s(:block, s(:send, nil, :proc), *m.children[1..-1]))
46
52
  end
47
53
  end
54
+
48
55
  elsif m.type == :defs and m.children.first == s(:self)
49
- # class method definition: add to prototype
50
- s(:prototype, s(:send, name, "#{m.children[1]}=",
51
- s(:block, s(:send, nil, :proc), *m.children[2..-1])))
56
+ if m.children[1] =~ /=$/
57
+ # class property setter
58
+ s(:prop, name, m.children[1].to_s[0..-2],
59
+ enumerable: s(:true), configurable: s(:true),
60
+ set: s(:block, s(:send, nil, :proc), *m.children[2..-1]))
61
+ elsif m.children[2].children.length == 0 and
62
+ m.children[1] !~ /!/ and m.loc and m.loc.name and
63
+ m.loc.name.source_buffer.source[m.loc.name.end_pos] != '('
64
+
65
+ # class property getter
66
+ s(:prop, name, m.children[1].to_s,
67
+ enumerable: s(:true), configurable: s(:true),
68
+ get: s(:block, s(:send, nil, :proc), m.children[2],
69
+ s(:autoreturn, *m.children[3..-1])))
70
+ else
71
+ # class method definition: add to prototype
72
+ s(:prototype, s(:send, name, "#{m.children[1]}=",
73
+ s(:block, s(:send, nil, :proc), *m.children[2..-1])))
74
+ end
75
+
52
76
  elsif m.type == :send and m.children.first == nil
53
77
  if m.children[1] == :attr_accessor
54
78
  m.children[2..-1].map do |sym|
@@ -82,6 +106,7 @@ module Ruby2JS
82
106
  # class method call
83
107
  s(:send, name, *m.children[1..-1])
84
108
  end
109
+
85
110
  elsif m.type == :block and m.children.first.children.first == nil
86
111
  # class method calls passing a block
87
112
  s(:block, s(:send, name, *m.children.first.children[1..-1]),
@@ -117,6 +142,7 @@ module Ruby2JS
117
142
  merge = body[i].children[2].merge(body[j].children[2])
118
143
  body[j] = s(:prop, *body[j].children[0..1], merge)
119
144
  body[i] = nil
145
+ break
120
146
  end
121
147
  end
122
148
  end
@@ -128,11 +154,13 @@ module Ruby2JS
128
154
  else
129
155
  body.compact!
130
156
 
131
- # look for first sequence of methods and properties
157
+ # look for first sequence of instance methods and properties
132
158
  methods = 0
133
159
  start = 0
134
160
  body.each do |node|
135
- if [:method, :prop].include? node.type
161
+ if [:method, :prop].include? node.type and
162
+ node.children[0].type == :attr and
163
+ node.children[0].children[1] == :prototype
136
164
  methods += 1
137
165
  elsif methods == 0
138
166
  start += 1
@@ -173,30 +201,26 @@ module Ruby2JS
173
201
  end
174
202
  end
175
203
 
176
- # macro that expands into Object.defineProperty(obj, prop, descriptor)
177
- handle :prop do |obj, prop, descriptor|
178
- parse s(:send, s(:const, nil, :Object), :defineProperty,
179
- obj, s(:sym, prop), s(:hash,
180
- *descriptor.map { |key, value| s(:pair, s(:sym, key), value) }))
181
- end
182
-
183
- # capture methods for use by super
184
- handle :method do |*args|
185
- begin
186
- instance_method, @instance_method = @instance_method, @ast
187
- parse s(:send, *args)
188
- ensure
189
- @instance_method = instance_method
190
- end
191
- end
192
-
193
- # capture constructors for use by super
194
- handle :constructor do |*args|
204
+ # handle properties, methods, and constructors
205
+ # @block_this and @block_depth are used by self
206
+ # @instance_method is used by super and self
207
+ handle :prop, :method, :constructor do |*args|
195
208
  begin
196
209
  instance_method, @instance_method = @instance_method, @ast
197
- parse s(:def, *args)
210
+ @block_this, @block_depth = false, 0
211
+ if @ast.type == :prop
212
+ obj, prop, descriptor = *args
213
+ parse s(:send, s(:const, nil, :Object), :defineProperty,
214
+ obj, s(:sym, prop), s(:hash,
215
+ *descriptor.map { |key, value| s(:pair, s(:sym, key), value) }))
216
+ elsif @ast.type == :method
217
+ parse s(:send, *args)
218
+ else
219
+ parse s(:def, *args)
220
+ end
198
221
  ensure
199
222
  @instance_method = instance_method
223
+ @block_this, @block_depth = nil, nil
200
224
  end
201
225
  end
202
226
  end
@@ -86,10 +86,16 @@ module Ruby2JS
86
86
  nl = @nl unless body == s(:begin)
87
87
  begin
88
88
  next_token, @next_token = @next_token, :return
89
- "function#{ " #{name}" if name }(#{ parse args }) " +
90
- "{#{nl}#{ scope body, vars}#{nl}}"
89
+ @block_depth += 1 if @block_depth
90
+ body = scope body, vars
91
+ if @block_this and @block_depth == 1
92
+ body = "var self = this#{@sep}#{body}"
93
+ end
94
+
95
+ "function#{ " #{name}" if name }(#{ parse args }) {#{nl}#{ body }#{nl}}"
91
96
  ensure
92
97
  @next_token = next_token
98
+ @block_depth -= 1 if @block_depth
93
99
  end
94
100
  end
95
101
  end
@@ -8,22 +8,29 @@ module Ruby2JS
8
8
 
9
9
  handle :hash do |*pairs|
10
10
  pairs.map! do |node|
11
- left, right = node.children
12
- if left.type == :prop
13
- result = []
14
- if right[:get]
15
- result << "get #{left.children[0]}#{
16
- parse(right[:get]).sub(/^function/,'')}"
17
- end
18
- if right[:set]
19
- result << "set #{left.children[0]}#{
20
- parse(right[:set]).sub(/^function/,'')}"
11
+ begin
12
+ @block_this, @block_depth = false, 0
13
+
14
+ left, right = node.children
15
+ if left.type == :prop
16
+ result = []
17
+ if right[:get]
18
+ result << "get #{left.children[0]}#{
19
+ parse(right[:get]).sub(/^function/,'')}"
20
+ end
21
+ if right[:set]
22
+ result << "set #{left.children[0]}#{
23
+ parse(right[:set]).sub(/^function/,'')}"
24
+ end
25
+ result
26
+ else
27
+ key = parse left
28
+ key = $1 if key =~ /\A"([a-zA-Z_$][a-zA-Z_$0-9]*)"\Z/
29
+ "#{key}: #{parse right}"
21
30
  end
22
- result
23
- else
24
- key = parse left
25
- key = $1 if key =~ /\A"([a-zA-Z_$][a-zA-Z_$0-9]*)"\Z/
26
- "#{key}: #{parse right}"
31
+
32
+ ensure
33
+ @block_this, @block_depth = nil, nil
27
34
  end
28
35
  end
29
36
 
@@ -10,7 +10,7 @@ module Ruby2JS
10
10
  ruby2js.enable_vertical_whitespace if @nl == "\n"
11
11
  ruby2js.to_js
12
12
  else
13
- var.to_s.sub('@', 'this._')
13
+ parse s(:attr, s(:self), var.to_s.sub('@', '_'))
14
14
  end
15
15
  end
16
16
  end
@@ -42,6 +42,9 @@ module Ruby2JS
42
42
  if vtype
43
43
  parse s(asgn.type, asgn.children.first, s(type,
44
44
  s(vtype, asgn.children.first), value))
45
+ elsif asgn.type == :send and asgn.children[1] == :[]
46
+ parse s(:send, asgn.children.first, :[]=,
47
+ asgn.children[2], s(type, asgn, value))
45
48
  else
46
49
  parse s(:send, asgn.children.first, "#{asgn.children[1]}=",
47
50
  s(type, asgn, value))
@@ -13,7 +13,7 @@ module Ruby2JS
13
13
  end
14
14
 
15
15
  EXPRESSIONS = [ :array, :float, :hash, :int, :lvar, :nil, :send, :attr,
16
- :str, :sym, :dstr, :dsym, :cvar, :ivar ]
16
+ :str, :sym, :dstr, :dsym, :cvar, :ivar, :zsuper, :super, :or, :and ]
17
17
 
18
18
  handle :autoreturn do |*statements|
19
19
  return if statements == [nil]
@@ -24,6 +24,29 @@ module Ruby2JS
24
24
 
25
25
  if EXPRESSIONS.include? block.last.type
26
26
  block.push s(:return, block.pop)
27
+ elsif block.last.type == :if
28
+ node = block.pop
29
+ if node.children[1] and node.children[2] and
30
+ EXPRESSIONS.include? node.children[1].type and
31
+ EXPRESSIONS.include? node.children[2].type
32
+ node = s(:return, node)
33
+ else
34
+ conditions = [[ node.children.first,
35
+ node.children[1] ? s(:autoreturn, node.children[1]) : nil ]]
36
+
37
+ while node.children[2] and node.children[2].type == :if
38
+ node = node.children[2]
39
+ conditions.unshift [ node.children.first,
40
+ node.children[1] ? s(:autoreturn, node.children[1]) : nil ]
41
+ end
42
+
43
+ node = node.children[2] ? s(:autoreturn, node.children[2]) : nil
44
+
45
+ conditions.each do |condition, statements|
46
+ node = s(:if, condition, statements, node)
47
+ end
48
+ end
49
+ block.push node
27
50
  end
28
51
 
29
52
  if block.length == 1
@@ -4,7 +4,12 @@ module Ruby2JS
4
4
  # (self)
5
5
 
6
6
  handle :self do
7
- 'this'
7
+ if @block_depth and @block_depth > 1
8
+ @block_this = true
9
+ 'self'
10
+ else
11
+ 'this'
12
+ end
8
13
  end
9
14
  end
10
15
  end
@@ -11,23 +11,29 @@ module Ruby2JS
11
11
  end
12
12
 
13
13
  # what to call
14
- if @instance_method.type == :method
15
- method = ".prototype.#{ @instance_method.children[1].to_s.chomp('=') }"
16
- else
14
+ if @instance_method.type == :constructor
17
15
  method = ''
16
+ else
17
+ method = ".prototype.#{ @instance_method.children[1].to_s.chomp('=') }"
18
18
  end
19
19
 
20
20
  # what to pass
21
21
  if @ast.type == :zsuper
22
22
  if @instance_method.type == :method
23
23
  args = @instance_method.children[2].children[1].children
24
+ elsif @instance_method.type == :prop
25
+ args = nil
24
26
  else
25
27
  args = @instance_method.children[1].children
26
28
  end
27
29
  end
28
30
 
29
- args = [s(:self), *args].map {|arg| parse arg}.join(', ')
30
- "#{ parse @class_parent }#{ method }.call(#{ args })"
31
+ if args
32
+ args = [s(:self), *args].map {|arg| parse arg}.join(', ')
33
+ "#{ parse @class_parent }#{ method }.call(#{ args })"
34
+ else
35
+ "#{ parse @class_parent }#{ method }"
36
+ end
31
37
  end
32
38
  end
33
39
  end
@@ -6,7 +6,8 @@ module Ruby2JS
6
6
  # (sym :bar))
7
7
 
8
8
  handle :undef do |*syms|
9
- syms.map {|sym| "delete #{sym.children.last}"}.join @sep
9
+ "delete " + syms.
10
+ map {|sym| sym.type == :sym ? sym.children.last : parse(sym)}.join(@sep)
10
11
  end
11
12
  end
12
13
  end
@@ -120,6 +120,8 @@ module Ruby2JS
120
120
  name = node.children.first
121
121
  if name.children.first == nil
122
122
  @ngClassUses, @ngClassOmit = [], []
123
+ @ngClassUses << node.children[1].children[1] if node.children[1]
124
+
123
125
  block = [node.children.last]
124
126
  uses = extract_uses(block)
125
127
  node = s(:class, name, node.children[1],
@@ -6,39 +6,36 @@ module Ruby2JS
6
6
  include SEXP
7
7
 
8
8
  def on_send(node)
9
- target = node.children.first
10
-
11
- args = node.children[2..-1]
9
+ target, method, *args = node.children
12
10
 
13
11
  if [:max, :min].include? node.children[1] and args.length == 0
14
12
  return super unless node.is_method?
15
13
  process s(:send, s(:attr, s(:const, nil, :Math), node.children[1]),
16
14
  :apply, s(:const, nil, :Math), target)
17
15
 
18
- elsif node.children[1] == :keys and node.children.length == 2
19
- if node.is_method?
20
- process s(:send, s(:const, nil, :Object), :keys, target)
21
- else
22
- super
23
- end
16
+ elsif method == :keys and args.length == 0 and node.is_method?
17
+ process s(:send, s(:const, nil, :Object), :keys, target)
18
+
19
+ elsif method == :delete and args.length == 1
20
+ process s(:undef, s(:send, target, :[], args.first))
24
21
 
25
- elsif node.children[1] == :to_s
22
+ elsif method == :to_s
26
23
  process s(:send, target, :toString, *args)
27
24
 
28
- elsif node.children[1] == :to_a
25
+ elsif method == :to_a
29
26
  process s(:send, target, :toArray, *args)
30
27
 
31
- elsif node.children[1] == :to_i
28
+ elsif method == :to_i
32
29
  process node.updated :send, [nil, :parseInt, target, *args]
33
30
 
34
- elsif node.children[1] == :to_f
31
+ elsif method == :to_f
35
32
  process node.updated :send, [nil, :parseFloat, target, *args]
36
33
 
37
- elsif node.children[1] == :sub and args.length == 2
34
+ elsif method == :sub and args.length == 2
38
35
  process node.updated nil, [target, :replace, *args]
39
36
 
40
- elsif [:sub!, :gsub!].include? node.children[1]
41
- method = :"#{node.children[1].to_s[0..-2]}"
37
+ elsif [:sub!, :gsub!].include? method
38
+ method = :"#{method.to_s[0..-2]}"
42
39
  if target.type == :lvar
43
40
  process s(:lvasgn, target.children[0], s(:send,
44
41
  s(:lvar, target.children[0]), method, *node.children[2..-1]))
@@ -54,8 +51,8 @@ module Ruby2JS
54
51
  super
55
52
  end
56
53
 
57
- elsif node.children[1] == :gsub and node.children.length == 4
58
- source, method, before, after = node.children
54
+ elsif method == :gsub and args.length == 2
55
+ before, after = args
59
56
  if before.type == :regexp
60
57
  before = s(:regexp, *before.children[0...-1],
61
58
  s(:regopt, :g, *before.children.last))
@@ -63,16 +60,16 @@ module Ruby2JS
63
60
  before = s(:regexp, s(:str, Regexp.escape(before.children.first)),
64
61
  s(:regopt, :g))
65
62
  end
66
- process node.updated nil, [source, :replace, before, after]
63
+ process node.updated nil, [target, :replace, before, after]
67
64
 
68
- elsif node.children[1] == :ord and node.children.length == 2
65
+ elsif method == :ord and args.length == 0
69
66
  if target.type == :str
70
67
  process s(:int, target.children.last.ord)
71
68
  else
72
69
  process node.updated nil, [target, :charCodeAt, s(:int, 0)]
73
70
  end
74
71
 
75
- elsif node.children[1] == :chr and node.children.length == 2
72
+ elsif method == :chr and args.length == 0
76
73
  if target.type == :int
77
74
  process s(:str, target.children.last.chr)
78
75
  else
@@ -80,31 +77,48 @@ module Ruby2JS
80
77
  target]
81
78
  end
82
79
 
83
- elsif node.children[1] == :empty? and node.children.length == 2
80
+ elsif method == :empty? and args.length == 0
84
81
  process s(:send, s(:attr, target, :length), :==, s(:int, 0))
85
82
 
86
- elsif node.children[1] == :clear and node.children.length == 2
87
- if node.is_method?
88
- process s(:send, target, :length=, s(:int, 0))
83
+ elsif [:start_with?, :end_with?].include? method and args.length == 1
84
+ if args.first.type == :str
85
+ length = s(:int, args.first.children.first.length)
89
86
  else
90
- super
87
+ length = s(:attr, *args, :length)
91
88
  end
92
89
 
93
- elsif node.children[1] == :replace and node.children.length == 3
90
+ if method == :start_with?
91
+ process s(:send, s(:send, target, :substring, s(:int, 0),
92
+ length), :==, *args)
93
+ else
94
+ process s(:send, s(:send, target, :slice,
95
+ s(:send, length, :-@)), :==, *args)
96
+ end
97
+
98
+ elsif method == :clear and args.length == 0 and node.is_method?
99
+ process s(:send, target, :length=, s(:int, 0))
100
+
101
+ elsif method == :replace and args.length == 1
94
102
  process s(:begin, s(:send, target, :length=, s(:int, 0)),
95
103
  s(:send, target, :push, s(:splat, node.children[2])))
96
104
 
97
- elsif node.children[1] == :include? and node.children.length == 3
105
+ elsif method == :include? and args.length == 1
98
106
  process s(:send, s(:send, target, :indexOf, args.first), :!=,
99
107
  s(:int, -1))
100
108
 
101
- elsif node.children[1] == :each
109
+ elsif method == :each
102
110
  process node.updated nil, [target, :forEach, *args]
103
111
 
112
+ elsif method == :downcase and args.length == 0
113
+ process node.updated nil, [target, :toLowerCase]
114
+
115
+ elsif method == :upcase and args.length == 0
116
+ process node.updated nil, [target, :toUpperCase]
117
+
104
118
  elsif node.children[0..1] == [nil, :puts]
105
119
  process s(:send, s(:attr, nil, :console), :log, *args)
106
120
 
107
- elsif node.children[1] == :first
121
+ elsif method == :first
108
122
  if node.children.length == 2
109
123
  process node.updated nil, [target, :[], s(:int, 0)]
110
124
  elsif node.children.length == 3
@@ -114,7 +128,7 @@ module Ruby2JS
114
128
  super
115
129
  end
116
130
 
117
- elsif node.children[1] == :last
131
+ elsif method == :last
118
132
  if node.children.length == 2
119
133
  process on_send node.updated nil, [target, :[], s(:int, -1)]
120
134
  elsif node.children.length == 3
@@ -126,7 +140,7 @@ module Ruby2JS
126
140
  end
127
141
 
128
142
 
129
- elsif node.children[1] == :[]
143
+ elsif method == :[]
130
144
  index = args.first
131
145
 
132
146
  # resolve negative literal indexes
@@ -171,7 +185,7 @@ module Ruby2JS
171
185
  super
172
186
  end
173
187
 
174
- elsif node.children[1] == :reverse! and node.is_method?
188
+ elsif method == :reverse! and node.is_method?
175
189
  # input: a.reverse!
176
190
  # output: a.splice(0, a.length, *a.reverse)
177
191
  target = node.children.first
@@ -179,7 +193,7 @@ module Ruby2JS
179
193
  s(:attr, target, :length), s(:splat, s(:send, target,
180
194
  :"#{node.children[1].to_s[0..-2]}", *node.children[2..-1])))
181
195
 
182
- elsif node.children[1] == :each_with_index
196
+ elsif method == :each_with_index
183
197
  process node.updated nil, [target, :forEach, *args]
184
198
 
185
199
  else
@@ -1,7 +1,7 @@
1
1
  module Ruby2JS
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
- MINOR = 6
4
+ MINOR = 7
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
data/ruby2js.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "ruby2js"
5
- s.version = "1.6.0"
5
+ s.version = "1.7.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 = "2014-02-26"
9
+ s.date = "2014-03-06"
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
12
  s.files = ["ruby2js.gemspec", "README.md", "lib/ruby2js", "lib/ruby2js/rails.rb", "lib/ruby2js/version.rb", "lib/ruby2js/converter", "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/super.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/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/underscore.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"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby2js
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-26 00:00:00.000000000 Z
11
+ date: 2014-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser