ruby2js 3.0.15 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +92 -7
- data/lib/ruby2js.rb +30 -3
- data/lib/ruby2js/converter.rb +23 -3
- data/lib/ruby2js/converter/args.rb +31 -1
- data/lib/ruby2js/converter/block.rb +2 -2
- data/lib/ruby2js/converter/casgn.rb +3 -2
- data/lib/ruby2js/converter/class.rb +2 -2
- data/lib/ruby2js/converter/class2.rb +117 -13
- data/lib/ruby2js/converter/cvar.rb +5 -3
- data/lib/ruby2js/converter/cvasgn.rb +5 -3
- data/lib/ruby2js/converter/def.rb +2 -2
- data/lib/ruby2js/converter/for.rb +8 -1
- data/lib/ruby2js/converter/hash.rb +22 -6
- data/lib/ruby2js/converter/if.rb +13 -2
- data/lib/ruby2js/converter/import.rb +38 -0
- data/lib/ruby2js/converter/ivar.rb +2 -0
- data/lib/ruby2js/converter/ivasgn.rb +1 -1
- data/lib/ruby2js/converter/kwbegin.rb +16 -2
- data/lib/ruby2js/converter/logical.rb +46 -1
- data/lib/ruby2js/converter/opasgn.rb +5 -2
- data/lib/ruby2js/converter/regexp.rb +27 -2
- data/lib/ruby2js/converter/return.rb +1 -1
- data/lib/ruby2js/converter/send.rb +160 -69
- data/lib/ruby2js/converter/super.rb +15 -9
- data/lib/ruby2js/converter/xnode.rb +89 -0
- data/lib/ruby2js/es2018.rb +5 -0
- data/lib/ruby2js/es2018/strict.rb +3 -0
- data/lib/ruby2js/es2019.rb +5 -0
- data/lib/ruby2js/es2019/strict.rb +3 -0
- data/lib/ruby2js/es2020.rb +5 -0
- data/lib/ruby2js/es2020/strict.rb +3 -0
- data/lib/ruby2js/es2021.rb +5 -0
- data/lib/ruby2js/es2021/strict.rb +3 -0
- data/lib/ruby2js/filter.rb +1 -0
- data/lib/ruby2js/filter/cjs.rb +2 -2
- data/lib/ruby2js/filter/esm.rb +72 -0
- data/lib/ruby2js/filter/functions.rb +218 -34
- data/lib/ruby2js/filter/matchAll.rb +49 -0
- data/lib/ruby2js/filter/node.rb +18 -10
- data/lib/ruby2js/filter/nokogiri.rb +13 -13
- data/lib/ruby2js/filter/react.rb +190 -30
- data/lib/ruby2js/filter/require.rb +1 -4
- data/lib/ruby2js/filter/rubyjs.rb +4 -4
- data/lib/ruby2js/filter/vue.rb +45 -17
- data/lib/ruby2js/filter/wunderbar.rb +63 -0
- data/lib/ruby2js/serializer.rb +25 -11
- data/lib/ruby2js/version.rb +2 -2
- metadata +16 -4
@@ -17,7 +17,7 @@ module Ruby2JS
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def on_send(node)
|
20
|
-
if
|
20
|
+
if \
|
21
21
|
not @require_expr and # only statements
|
22
22
|
node.children.length == 3 and
|
23
23
|
node.children[0] == nil and
|
@@ -39,9 +39,6 @@ module Ruby2JS
|
|
39
39
|
filename = File.join(dirname, basename)
|
40
40
|
|
41
41
|
segments = basename.split(/[\/\\]/)
|
42
|
-
if segments.all? {|path| path =~ @@valid_path and path != '..'}
|
43
|
-
filename.untaint
|
44
|
-
end
|
45
42
|
|
46
43
|
if not File.file? filename and File.file? filename+".rb"
|
47
44
|
filename += '.rb'
|
@@ -20,7 +20,7 @@ module Ruby2JS
|
|
20
20
|
target = target.children.first
|
21
21
|
end
|
22
22
|
|
23
|
-
if
|
23
|
+
if \
|
24
24
|
[:capitalize, :center, :chomp, :ljust, :lstrip, :rindex, :rjust,
|
25
25
|
:rstrip, :scan, :swapcase, :tr].include? method
|
26
26
|
then
|
@@ -28,7 +28,7 @@ module Ruby2JS
|
|
28
28
|
s(:send, s(:lvar, :_s), method,
|
29
29
|
*process_all([node.children[0], *node.children[2..-1]]))
|
30
30
|
|
31
|
-
elsif
|
31
|
+
elsif \
|
32
32
|
[:at, :compact, :compact!, :delete_at, :delete_at, :flatten, :insert,
|
33
33
|
:reverse, :reverse!, :rotate, :rotate, :rotate!, :shift, :shuffle,
|
34
34
|
:shuffle!, :slice, :slice!, :transpose, :union, :uniq, :uniq!]
|
@@ -62,14 +62,14 @@ module Ruby2JS
|
|
62
62
|
method = call.children[1]
|
63
63
|
return super if excluded?(method)
|
64
64
|
|
65
|
-
if
|
65
|
+
if \
|
66
66
|
[:collect_concat, :count, :cycle, :delete_if, :drop_while,
|
67
67
|
:each_index, :each_slice, :each_with_index, :each_with_object,
|
68
68
|
:find, :find_all, :flat_map, :inject, :grep, :group_by, :keep_if,
|
69
69
|
:map, :max_by, :min_by, :one?, :partition, :reject, :reverse_each,
|
70
70
|
:select!, :sort_by, :take_while].include? method
|
71
71
|
then
|
72
|
-
if
|
72
|
+
if \
|
73
73
|
[:collect_concat, :count, :delete_if, :drop_while, :find,
|
74
74
|
:find_all, :flat_map, :grep, :group_by, :keep_if, :map, :max_by,
|
75
75
|
:min_by, :one?, :partition, :reject, :select!, :sort_by,
|
data/lib/ruby2js/filter/vue.rb
CHANGED
@@ -30,7 +30,12 @@ module Ruby2JS
|
|
30
30
|
@vue_props = []
|
31
31
|
@vue_reactive = []
|
32
32
|
@vue_filter_functions = false
|
33
|
+
|
34
|
+
@vue_setup = false
|
35
|
+
|
33
36
|
super
|
37
|
+
|
38
|
+
@exclude_methods << @vue_methods
|
34
39
|
end
|
35
40
|
|
36
41
|
def options=(options)
|
@@ -38,7 +43,7 @@ module Ruby2JS
|
|
38
43
|
@vue_h ||= options[:vue_h]
|
39
44
|
filters = options[:filters] || Filter::DEFAULTS
|
40
45
|
|
41
|
-
if
|
46
|
+
if \
|
42
47
|
defined? Ruby2JS::Filter::Functions and
|
43
48
|
filters.include? Ruby2JS::Filter::Functions
|
44
49
|
then
|
@@ -46,6 +51,29 @@ module Ruby2JS
|
|
46
51
|
end
|
47
52
|
end
|
48
53
|
|
54
|
+
# if options[:vue_h] is set, return an array of nodes
|
55
|
+
def process(node)
|
56
|
+
return super if @vue_setup
|
57
|
+
@vue_setup = true
|
58
|
+
if @vue_h
|
59
|
+
if node.type == :begin
|
60
|
+
begin
|
61
|
+
@vue_apply = true
|
62
|
+
process s(:send, s(:block, s(:send, nil, :proc),
|
63
|
+
s(:args, s(:shadowarg, :$_)),
|
64
|
+
s(:begin, s(:lvasgn, :$_, s(:array)), process(node),
|
65
|
+
s(:return, s(:gvar, :$_)))), :[])
|
66
|
+
ensure
|
67
|
+
@vue_apply = nil
|
68
|
+
end
|
69
|
+
else
|
70
|
+
process s(:array, node)
|
71
|
+
end
|
72
|
+
else
|
73
|
+
process node
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
49
77
|
# Example conversion
|
50
78
|
# before:
|
51
79
|
# (class (const nil :Foo) (const nil :Vue) nil)
|
@@ -92,7 +120,7 @@ module Ruby2JS
|
|
92
120
|
end
|
93
121
|
|
94
122
|
@vue_inventory = vue_walk(node)
|
95
|
-
@vue_methods
|
123
|
+
@vue_methods.clear
|
96
124
|
@vue_props = []
|
97
125
|
@vue_reactive = []
|
98
126
|
|
@@ -112,7 +140,7 @@ module Ruby2JS
|
|
112
140
|
end
|
113
141
|
end
|
114
142
|
|
115
|
-
elsif
|
143
|
+
elsif \
|
116
144
|
statement.type == :send and statement.children[0] == cname and
|
117
145
|
statement.children[1].to_s.end_with? '='
|
118
146
|
then
|
@@ -133,13 +161,13 @@ module Ruby2JS
|
|
133
161
|
hash << s(:pair, s(:sym, statement.children[1]),
|
134
162
|
statement.children[2])
|
135
163
|
|
136
|
-
elsif
|
164
|
+
elsif \
|
137
165
|
statement.children[1] == :options and
|
138
166
|
statement.children[2].type == :hash
|
139
167
|
then
|
140
168
|
options += statement.children[2].children
|
141
169
|
|
142
|
-
elsif
|
170
|
+
elsif \
|
143
171
|
statement.children[1] == :el and
|
144
172
|
statement.children[2].type == :str
|
145
173
|
then
|
@@ -162,7 +190,7 @@ module Ruby2JS
|
|
162
190
|
|
163
191
|
block = s(:begin, block) unless block and block.type == :begin
|
164
192
|
|
165
|
-
if
|
193
|
+
if \
|
166
194
|
(block.children.length != 1 and
|
167
195
|
not vue_wunderbar_free(block.children[0..-2])) or
|
168
196
|
|
@@ -280,7 +308,7 @@ module Ruby2JS
|
|
280
308
|
hash << s(:pair, s(:sym, :methods), s(:hash, *methods))
|
281
309
|
end
|
282
310
|
|
283
|
-
@vue_methods
|
311
|
+
@vue_methods.clear
|
284
312
|
|
285
313
|
# append setters to computed list
|
286
314
|
setters.each do |setter|
|
@@ -375,7 +403,7 @@ module Ruby2JS
|
|
375
403
|
end
|
376
404
|
end
|
377
405
|
|
378
|
-
elsif
|
406
|
+
elsif \
|
379
407
|
class_methods.any? do |other_method|
|
380
408
|
other_method.children[1].to_s == "#{method.children[1]}="
|
381
409
|
end
|
@@ -517,7 +545,7 @@ module Ruby2JS
|
|
517
545
|
*values.join(' ').split(' ').
|
518
546
|
map {|str| s(:pair, s(:str, str), s(:true))})
|
519
547
|
else
|
520
|
-
if
|
548
|
+
if \
|
521
549
|
expr.type == :if and expr.children[1] and
|
522
550
|
expr.children[1].type == :str
|
523
551
|
then
|
@@ -819,7 +847,7 @@ module Ruby2JS
|
|
819
847
|
s(:splat, s(:array, *process_all(node.children[2..-1])))
|
820
848
|
end
|
821
849
|
|
822
|
-
elsif
|
850
|
+
elsif \
|
823
851
|
node.children[1] == :createElement and
|
824
852
|
node.children[0] == s(:const, nil, :Vue)
|
825
853
|
then
|
@@ -839,7 +867,7 @@ module Ruby2JS
|
|
839
867
|
element
|
840
868
|
end
|
841
869
|
|
842
|
-
elsif
|
870
|
+
elsif \
|
843
871
|
@vue_self and VUE_METHODS.include? node.children[1] and
|
844
872
|
node.children[0] == s(:const, nil, :Vue)
|
845
873
|
then
|
@@ -901,7 +929,7 @@ module Ruby2JS
|
|
901
929
|
prev = nil
|
902
930
|
(node.children.length-1).downto(0) do |i|
|
903
931
|
child = node.children[i]
|
904
|
-
if
|
932
|
+
if \
|
905
933
|
child.type == :send and child.children[0] == s(:gvar, :$_) and
|
906
934
|
child.children[1] == :push
|
907
935
|
then
|
@@ -940,7 +968,7 @@ module Ruby2JS
|
|
940
968
|
child = node.children.first
|
941
969
|
|
942
970
|
# map Vue.render(el, &block) to Vue.new(el: el, render: block)
|
943
|
-
if
|
971
|
+
if \
|
944
972
|
child.children[1] == :render and
|
945
973
|
child.children[0] == s(:const, nil, :Vue)
|
946
974
|
then
|
@@ -951,7 +979,7 @@ module Ruby2JS
|
|
951
979
|
block = node.children[2]
|
952
980
|
block = s(:begin, block) unless block and block.type == :begin
|
953
981
|
|
954
|
-
if
|
982
|
+
if \
|
955
983
|
block.children.length != 1 or not block.children.last or
|
956
984
|
not [:send, :block].include? block.children.first.type
|
957
985
|
then
|
@@ -971,7 +999,7 @@ module Ruby2JS
|
|
971
999
|
|
972
1000
|
return super unless @vue_h
|
973
1001
|
|
974
|
-
if
|
1002
|
+
if \
|
975
1003
|
child.children[1] == :createElement and
|
976
1004
|
child.children[0] == s(:const, nil, :Vue)
|
977
1005
|
then
|
@@ -1031,7 +1059,7 @@ module Ruby2JS
|
|
1031
1059
|
*node.children[1..-1]))
|
1032
1060
|
end
|
1033
1061
|
|
1034
|
-
elsif
|
1062
|
+
elsif \
|
1035
1063
|
node.children.first.children.last == :forEach and
|
1036
1064
|
vue_element?(node.children.last)
|
1037
1065
|
then
|
@@ -1116,7 +1144,7 @@ module Ruby2JS
|
|
1116
1144
|
node.children[0].children[0].to_s[1..-1]),
|
1117
1145
|
node.children[1], process(node.children[2])]
|
1118
1146
|
|
1119
|
-
elsif
|
1147
|
+
elsif \
|
1120
1148
|
node.children.first.type == :lvasgn and
|
1121
1149
|
@vue_props.include? node.children[0].children[0]
|
1122
1150
|
then
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'ruby2js'
|
2
|
+
|
3
|
+
module Ruby2JS
|
4
|
+
module Filter
|
5
|
+
module Wunderbar
|
6
|
+
include SEXP
|
7
|
+
|
8
|
+
def on_send(node)
|
9
|
+
target, method, *attrs = node.children
|
10
|
+
|
11
|
+
if target == s(:const, nil, :Wunderbar)
|
12
|
+
if [:debug, :info, :warn, :error, :fatal].include? method
|
13
|
+
method = :error if method == :fatal
|
14
|
+
return node.updated(nil, [s(:const, nil, :console), method, *attrs])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
stack = []
|
19
|
+
while target!=nil and target.type==:send and target.children.length==2
|
20
|
+
name = method.to_s
|
21
|
+
if name.end_with? '!'
|
22
|
+
stack << s(:hash, s(:pair, s(:sym, :id), s(:str, name[0..-2])))
|
23
|
+
else
|
24
|
+
stack << s(:hash, s(:pair, s(:sym, :class), s(:str, name)))
|
25
|
+
end
|
26
|
+
target, method = target.children
|
27
|
+
end
|
28
|
+
|
29
|
+
if target == nil and method.to_s.start_with? "_"
|
30
|
+
S(:xnode, *method.to_s[1..-1], *stack, *process_all(attrs))
|
31
|
+
else
|
32
|
+
super
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def on_block(node)
|
37
|
+
send, args, *block = node.children
|
38
|
+
target, method, *_ = send.children
|
39
|
+
while target!=nil and target.type==:send and target.children.length==2
|
40
|
+
target, method = target.children
|
41
|
+
end
|
42
|
+
|
43
|
+
if target == nil and method.to_s.start_with? "_"
|
44
|
+
if args.children.empty?
|
45
|
+
# append block as a standalone proc
|
46
|
+
process send.updated(nil, [*send.children, *process_all(block)])
|
47
|
+
else
|
48
|
+
# iterate over Enumerable arguments if there are args present
|
49
|
+
send = send.children
|
50
|
+
return super if send.length < 3
|
51
|
+
process s(:block, s(:send, *send[0..1], *send[3..-1]),
|
52
|
+
s(:args), s(:block, s(:send, send[2], :map),
|
53
|
+
*node.children[1..-1]))
|
54
|
+
end
|
55
|
+
else
|
56
|
+
super
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
DEFAULTS.push Wunderbar
|
62
|
+
end
|
63
|
+
end
|
data/lib/ruby2js/serializer.rb
CHANGED
@@ -32,8 +32,10 @@ module Ruby2JS
|
|
32
32
|
''
|
33
33
|
elsif ['case ', 'default:'].include? self[0]
|
34
34
|
' ' * ([0,indent-2].max) + join
|
35
|
-
|
35
|
+
elsif indent > 0
|
36
36
|
' ' * indent + join
|
37
|
+
else
|
38
|
+
join
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
@@ -58,7 +60,6 @@ module Ruby2JS
|
|
58
60
|
|
59
61
|
def timestamp(file)
|
60
62
|
if file
|
61
|
-
file = file.dup.untaint
|
62
63
|
@timestamps[file] = File.mtime(file) if File.exist?(file)
|
63
64
|
end
|
64
65
|
end
|
@@ -87,9 +88,21 @@ module Ruby2JS
|
|
87
88
|
first = line.find {|token| !token.empty?}
|
88
89
|
if first
|
89
90
|
last = line[line.rindex {|token| !token.empty?}]
|
90
|
-
|
91
|
-
|
92
|
-
|
91
|
+
if (first.start_with? '<' and line.include? '>') or
|
92
|
+
(last.end_with? '>' and line.include? '<')
|
93
|
+
then
|
94
|
+
node = line.join[/.*?(<.*)/, 1]
|
95
|
+
indent -= @indent if node.start_with? '</'
|
96
|
+
|
97
|
+
line.indent = indent
|
98
|
+
|
99
|
+
node = line.join[/.*(<.*)/, 1]
|
100
|
+
indent += @indent unless node.include? '</' or node.include? '/>'
|
101
|
+
else
|
102
|
+
indent -= @indent if ')}]'.include? first[0] and indent >= @indent
|
103
|
+
line.indent = indent
|
104
|
+
indent += @indent if '({['.include? last[-1]
|
105
|
+
end
|
93
106
|
else
|
94
107
|
line.indent = indent
|
95
108
|
end
|
@@ -102,24 +115,24 @@ module Ruby2JS
|
|
102
115
|
reindent @lines
|
103
116
|
|
104
117
|
(@lines.length-3).downto(0) do |i|
|
105
|
-
if
|
118
|
+
if \
|
106
119
|
@lines[i].length == 0
|
107
120
|
then
|
108
121
|
@lines.delete i
|
109
|
-
elsif
|
122
|
+
elsif \
|
110
123
|
@lines[i+1].comment? and not @lines[i].comment? and
|
111
124
|
@lines[i].indent == @lines[i+1].indent
|
112
125
|
then
|
113
126
|
# before a comment
|
114
127
|
@lines.insert i+1, Line.new
|
115
|
-
elsif
|
128
|
+
elsif \
|
116
129
|
@lines[i].indent == @lines[i+1].indent and
|
117
130
|
@lines[i+1].indent < @lines[i+2].indent and
|
118
131
|
not @lines[i].comment?
|
119
132
|
then
|
120
133
|
# start of indented block
|
121
134
|
@lines.insert i+1, Line.new
|
122
|
-
elsif
|
135
|
+
elsif \
|
123
136
|
@lines[i].indent > @lines[i+1].indent and
|
124
137
|
@lines[i+1].indent == @lines[i+2].indent and
|
125
138
|
not @lines[i+2].empty?
|
@@ -136,7 +149,8 @@ module Ruby2JS
|
|
136
149
|
@line << Token.new(string, @ast)
|
137
150
|
else
|
138
151
|
parts = string.split("\n")
|
139
|
-
|
152
|
+
first = parts.shift
|
153
|
+
@line << Token.new(first, @ast) if first
|
140
154
|
@lines += parts.map {|part| Line.new(Token.new(part, @ast))}
|
141
155
|
@lines << Line.new if string.end_with?("\n")
|
142
156
|
@line = @lines.last
|
@@ -208,7 +222,7 @@ module Ruby2JS
|
|
208
222
|
mark = output_location
|
209
223
|
yield
|
210
224
|
|
211
|
-
if
|
225
|
+
if \
|
212
226
|
@lines.length > mark.first+1 or
|
213
227
|
@lines[mark.first-1].join.length + @line.join.length >= @width
|
214
228
|
then
|
data/lib/ruby2js/version.rb
CHANGED
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: 3.0
|
4
|
+
version: 3.3.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:
|
11
|
+
date: 2020-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/ruby2js/converter/for.rb
|
61
61
|
- lib/ruby2js/converter/hash.rb
|
62
62
|
- lib/ruby2js/converter/if.rb
|
63
|
+
- lib/ruby2js/converter/import.rb
|
63
64
|
- lib/ruby2js/converter/in.rb
|
64
65
|
- lib/ruby2js/converter/ivar.rb
|
65
66
|
- lib/ruby2js/converter/ivasgn.rb
|
@@ -86,6 +87,7 @@ files:
|
|
86
87
|
- lib/ruby2js/converter/vasgn.rb
|
87
88
|
- lib/ruby2js/converter/while.rb
|
88
89
|
- lib/ruby2js/converter/whilepost.rb
|
90
|
+
- lib/ruby2js/converter/xnode.rb
|
89
91
|
- lib/ruby2js/converter/xstr.rb
|
90
92
|
- lib/ruby2js/es2015.rb
|
91
93
|
- lib/ruby2js/es2015/strict.rb
|
@@ -93,12 +95,22 @@ files:
|
|
93
95
|
- lib/ruby2js/es2016/strict.rb
|
94
96
|
- lib/ruby2js/es2017.rb
|
95
97
|
- lib/ruby2js/es2017/strict.rb
|
98
|
+
- lib/ruby2js/es2018.rb
|
99
|
+
- lib/ruby2js/es2018/strict.rb
|
100
|
+
- lib/ruby2js/es2019.rb
|
101
|
+
- lib/ruby2js/es2019/strict.rb
|
102
|
+
- lib/ruby2js/es2020.rb
|
103
|
+
- lib/ruby2js/es2020/strict.rb
|
104
|
+
- lib/ruby2js/es2021.rb
|
105
|
+
- lib/ruby2js/es2021/strict.rb
|
96
106
|
- lib/ruby2js/execjs.rb
|
97
107
|
- lib/ruby2js/filter.rb
|
98
108
|
- lib/ruby2js/filter/camelCase.rb
|
99
109
|
- lib/ruby2js/filter/cjs.rb
|
110
|
+
- lib/ruby2js/filter/esm.rb
|
100
111
|
- lib/ruby2js/filter/functions.rb
|
101
112
|
- lib/ruby2js/filter/jquery.rb
|
113
|
+
- lib/ruby2js/filter/matchAll.rb
|
102
114
|
- lib/ruby2js/filter/minitest-jasmine.rb
|
103
115
|
- lib/ruby2js/filter/node.rb
|
104
116
|
- lib/ruby2js/filter/nokogiri.rb
|
@@ -108,6 +120,7 @@ files:
|
|
108
120
|
- lib/ruby2js/filter/rubyjs.rb
|
109
121
|
- lib/ruby2js/filter/underscore.rb
|
110
122
|
- lib/ruby2js/filter/vue.rb
|
123
|
+
- lib/ruby2js/filter/wunderbar.rb
|
111
124
|
- lib/ruby2js/haml.rb
|
112
125
|
- lib/ruby2js/rails.rb
|
113
126
|
- lib/ruby2js/serializer.rb
|
@@ -134,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
147
|
- !ruby/object:Gem::Version
|
135
148
|
version: '0'
|
136
149
|
requirements: []
|
137
|
-
|
138
|
-
rubygems_version: 2.7.6
|
150
|
+
rubygems_version: 3.1.2
|
139
151
|
signing_key:
|
140
152
|
specification_version: 4
|
141
153
|
summary: Minimal yet extensible Ruby to JavaScript conversion.
|