ruby2js 1.1.0 → 1.1.1
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 +8 -8
- data/lib/ruby2js/converter/case.rb +2 -2
- data/lib/ruby2js/converter/if.rb +3 -0
- data/lib/ruby2js/filter/jquery.rb +27 -2
- data/lib/ruby2js/version.rb +1 -1
- data/ruby2js.gemspec +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDlkZTE5MGYzYzBlZDc0YzBmZmU5YmE2NWZmNTU1MWQwYWE1ZjVmNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWM4OGU4OTgzMGU0ZjAxMDc1MGFhOGNmMDU2YWZjOWU0ZmNjYWFjNg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YzNiMmJmNTg5MDBiZmQzMTc1OGQ5ZDNiNTEyYzZjN2FjNjlhNjAwYTA2NGVl
|
10
|
+
ZWYxZjZiNDc0NDFhZjI1YmZlMjU3ZGNkOWVlNjEwNTg0NGFlZDhhZmNlZTBj
|
11
|
+
YzI0OGYyZGRjMmI3NDRlODk0ZTNkYzBjNGQ4MDYxNWUwYzVhOGQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGNiMTlkMGEyYzVjNDg3ODc2OGQ3ZDE1ODcyZTk0YjRiN2Q3MGNlZjlhNWQ1
|
14
|
+
MmNlOGFiYjNlM2RiMjJmZDZjYzUxMzc5NGMzZjg4MmU3NDEwZjM3ZDg0NGNi
|
15
|
+
NGRmOWQ3OWQwNzI3ZjNhZTNkNDA4MzEzY2YwODY2NWE1NTRmNTM=
|
@@ -12,10 +12,10 @@ module Ruby2JS
|
|
12
12
|
whens.map! do |node|
|
13
13
|
*values, code = node.children
|
14
14
|
cases = values.map {|value| "case #{ parse value }:#@ws"}.join
|
15
|
-
"#{ cases }#{ parse code }#{@sep}break#@sep"
|
15
|
+
"#{ cases }#{ parse code, :statement }#{@sep}break#@sep"
|
16
16
|
end
|
17
17
|
|
18
|
-
other = "#{@nl}default:#@ws#{ parse other }#@nl" if other
|
18
|
+
other = "#{@nl}default:#@ws#{ parse other, :statement }#@nl" if other
|
19
19
|
|
20
20
|
"switch (#{ parse expr }) {#@nl#{whens.join(@nl)}#{other}}"
|
21
21
|
end
|
data/lib/ruby2js/converter/if.rb
CHANGED
@@ -7,10 +7,13 @@ module Ruby2JS
|
|
7
7
|
# (...))
|
8
8
|
|
9
9
|
handle :if do |condition, then_block, else_block|
|
10
|
+
# return parse condition if not else_block and not then_block
|
10
11
|
if else_block and not then_block
|
11
12
|
return parse(s(:if, s(:send, condition, :!), else_block, nil), @state)
|
12
13
|
end
|
13
14
|
|
15
|
+
then_block ||= s(:nil)
|
16
|
+
|
14
17
|
if @state == :statement
|
15
18
|
output = "if (#{ parse condition }) {#@nl#{ scope then_block }#@nl}"
|
16
19
|
while else_block and else_block.type == :if
|
@@ -16,6 +16,10 @@ require 'ruby2js'
|
|
16
16
|
# to match jQuery's convention for getters and setters:
|
17
17
|
# http://learn.jquery.com/using-jquery-core/working-with-selections/
|
18
18
|
#
|
19
|
+
# Selected DOM properties (namely checked, disabled, readOnly, and required)
|
20
|
+
# can also use getter and setter syntax. Additionally, readOnly may be
|
21
|
+
# spelled 'readonly'.
|
22
|
+
#
|
19
23
|
# Of course, using jQuery's style of getter and setter calls is supported,
|
20
24
|
# and indeed is convenient when using method chaining.
|
21
25
|
#
|
@@ -26,12 +30,15 @@ require 'ruby2js'
|
|
26
30
|
#
|
27
31
|
# Some examples of before/after conversions:
|
28
32
|
#
|
29
|
-
#
|
33
|
+
# ~this.val
|
30
34
|
# $(this).val()
|
31
35
|
#
|
32
|
-
#
|
36
|
+
# ~"button.continue".html = "Next Step..."
|
33
37
|
# $("button.continue").html("Next Step...")
|
34
38
|
#
|
39
|
+
# ~"button".readonly = false
|
40
|
+
# $("button").prop("readOnly", false)
|
41
|
+
#
|
35
42
|
# $$.ajax(
|
36
43
|
# url: "/api/getWeather",
|
37
44
|
# data: {zipcode: 97201},
|
@@ -79,8 +86,23 @@ module Ruby2JS
|
|
79
86
|
elsif node.children[1] == :~
|
80
87
|
# map ~expression.method to $(expression).method
|
81
88
|
|
89
|
+
if node.children[0] and node.children[0].type == :op_asgn
|
90
|
+
asgn = node.children[0]
|
91
|
+
if asgn.children[0] and asgn.children[0].type == :send
|
92
|
+
inner = asgn.children[0]
|
93
|
+
return on_send s(:send, s(:send, inner.children[0],
|
94
|
+
(inner.children[1].to_s+'=').to_sym,
|
95
|
+
s(:send, s(:send, s(:send, inner.children[0], :~),
|
96
|
+
*inner.children[1..-1]), *asgn.children[1..-1])), :~)
|
97
|
+
else
|
98
|
+
return on_send asgn.updated nil, [s(:send, asgn.children[0], :~),
|
99
|
+
*asgn.children[1..-1]]
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
82
103
|
# See http://api.jquery.com/category/properties/
|
83
104
|
props = :context, :jquery, :browser, :fx, :support, :length, :selector
|
105
|
+
domprops = %w(checked disabled readonly readOnly required)
|
84
106
|
|
85
107
|
rewrite_tilda = proc do |node|
|
86
108
|
# Example conversion:
|
@@ -105,6 +127,9 @@ module Ruby2JS
|
|
105
127
|
method, *process_all(node.children[2..-1])]
|
106
128
|
if props.include? node.children[1]
|
107
129
|
node.updated nil, rewrite
|
130
|
+
elsif domprops.include? method.to_s
|
131
|
+
method = :readOnly if method.to_s == 'readonly'
|
132
|
+
s(:send, rewrite[0], :prop, s(:sym, method), *rewrite[2..-1])
|
108
133
|
else
|
109
134
|
s(:send, *rewrite)
|
110
135
|
end
|
data/lib/ruby2js/version.rb
CHANGED
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.1.
|
5
|
+
s.version = "1.1.1"
|
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-11-
|
9
|
+
s.date = "2013-11-22"
|
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/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/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/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/converter.rb", "lib/ruby2js/filter", "lib/ruby2js/filter/return.rb", "lib/ruby2js/filter/angularrb.rb", "lib/ruby2js/filter/functions.rb", "lib/ruby2js/filter/jquery.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.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|