ruby2js 1.6.0 → 1.7.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 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