ruby2js 1.10.0 → 1.11.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.
data/README.md CHANGED
@@ -130,10 +130,15 @@ filters are selected, they will all be applied in parallel in one pass through
130
130
  the script.
131
131
 
132
132
  * [strict](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/filter/strict.rb)
133
- adds `'use strict';` to the output
133
+ adds `'use strict';` to the output.
134
134
 
135
135
  * [return](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/filter/return.rb)
136
- adds `return` to the last expression in functions
136
+ adds `return` to the last expression in functions.
137
+
138
+ * [camelCase](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/filter/camelCase.rb)
139
+ converts `underscore_case` to `camelCase`. See
140
+ [camelCase_spec](https://github.com/rubys/ruby2js/blob/master/spec/camelCase_spec.rb)
141
+ for examples.
137
142
 
138
143
  * [functions](https://github.com/rubys/ruby2js/blob/master/lib/ruby2js/filter/functions.rb)
139
144
 
@@ -26,6 +26,9 @@ module Ruby2JS
26
26
  def on_sendw(node); on_send(node); end
27
27
  def on_undefined?(node); on_defined?(node); end
28
28
 
29
+ # provide a method so filters can call 'super'
30
+ def on_sym(node); node; end
31
+
29
32
  # convert map(&:symbol) to a block
30
33
  def on_send(node)
31
34
  if node.children.length > 2 and node.children.last.type == :block_pass
@@ -0,0 +1,87 @@
1
+ require 'ruby2js'
2
+
3
+ module Ruby2JS
4
+ module Filter
5
+ module CamelCase
6
+ include SEXP
7
+
8
+ WHITELIST = %w{
9
+ attr_accessor
10
+ }
11
+
12
+ def camelCase(symbol)
13
+ symbol.to_s.gsub(/_[a-z]/) {|match| match[1].upcase}
14
+ end
15
+
16
+ def on_send(node)
17
+ if node.children[0] == nil and WHITELIST.include? node.children[1].to_s
18
+ super
19
+ elsif node.children[1] =~ /_.*\w$/
20
+ super s((node.is_method? ? :send : :attr) , node.children[0],
21
+ camelCase(node.children[1]), *node.children[2..-1])
22
+ else
23
+ super
24
+ end
25
+ end
26
+
27
+ def on_def(node)
28
+ if node.children[0] =~ /_.*\w$/
29
+ super s(:def , camelCase(node.children[0]), *node.children[1..-1])
30
+ else
31
+ super
32
+ end
33
+ end
34
+
35
+ def on_optarg(node)
36
+ if node.children[0] =~ /_.*\w$/
37
+ super s(:optarg , camelCase(node.children[0]), *node.children[1..-1])
38
+ else
39
+ super
40
+ end
41
+ end
42
+
43
+ def on_lvar(node)
44
+ if node.children[0] =~ /_.*\w$/
45
+ super s(:lvar , camelCase(node.children[0]), *node.children[1..-1])
46
+ else
47
+ super
48
+ end
49
+ end
50
+
51
+ def on_arg(node)
52
+ if node.children[0] =~ /_.*\w$/
53
+ super s(:arg , camelCase(node.children[0]), *node.children[1..-1])
54
+ else
55
+ super
56
+ end
57
+ end
58
+
59
+ def on_lvasgn(node)
60
+ if node.children[0] =~ /_.*\w$/
61
+ super s(:lvasgn , camelCase(node.children[0]), *node.children[1..-1])
62
+ else
63
+ super
64
+ end
65
+ end
66
+
67
+ def on_sym(node)
68
+ if node.children[0] =~ /_.*\w$/
69
+ super s(:sym , camelCase(node.children[0]), *node.children[1..-1])
70
+ else
71
+ super
72
+ end
73
+ end
74
+
75
+ def on_defs(node)
76
+ if node.children[1] =~ /_.*\w$/
77
+ super s(:defs , node.children[0],
78
+ camelCase(node.children[1]), *node.children[2..-1])
79
+ else
80
+ super
81
+ end
82
+ end
83
+ end
84
+
85
+ DEFAULTS.push CamelCase
86
+ end
87
+ end
@@ -1,7 +1,7 @@
1
1
  module Ruby2JS
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
- MINOR = 10
4
+ MINOR = 11
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
@@ -2,14 +2,14 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "ruby2js"
5
- s.version = "1.10.0"
5
+ s.version = "1.11.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-10-25"
9
+ s.date = "2014-11-03"
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.rb", "lib/ruby2js", "lib/ruby2js/converter.rb", "lib/ruby2js/version.rb", "lib/ruby2js/cgi.rb", "lib/ruby2js/rails.rb", "lib/ruby2js/converter", "lib/ruby2js/converter/prototype.rb", "lib/ruby2js/converter/begin.rb", "lib/ruby2js/converter/undef.rb", "lib/ruby2js/converter/kwbegin.rb", "lib/ruby2js/converter/const.rb", "lib/ruby2js/converter/self.rb", "lib/ruby2js/converter/class.rb", "lib/ruby2js/converter/untilpost.rb", "lib/ruby2js/converter/while.rb", "lib/ruby2js/converter/blockpass.rb", "lib/ruby2js/converter/array.rb", "lib/ruby2js/converter/for.rb", "lib/ruby2js/converter/hash.rb", "lib/ruby2js/converter/block.rb", "lib/ruby2js/converter/def.rb", "lib/ruby2js/converter/nil.rb", "lib/ruby2js/converter/if.rb", "lib/ruby2js/converter/break.rb", "lib/ruby2js/converter/send.rb", "lib/ruby2js/converter/module.rb", "lib/ruby2js/converter/defs.rb", "lib/ruby2js/converter/ivar.rb", "lib/ruby2js/converter/var.rb", "lib/ruby2js/converter/case.rb", "lib/ruby2js/converter/literal.rb", "lib/ruby2js/converter/super.rb", "lib/ruby2js/converter/opasgn.rb", "lib/ruby2js/converter/return.rb", "lib/ruby2js/converter/arg.rb", "lib/ruby2js/converter/regexp.rb", "lib/ruby2js/converter/args.rb", "lib/ruby2js/converter/until.rb", "lib/ruby2js/converter/dstr.rb", "lib/ruby2js/converter/vasgn.rb", "lib/ruby2js/converter/whilepost.rb", "lib/ruby2js/converter/xstr.rb", "lib/ruby2js/converter/defined.rb", "lib/ruby2js/converter/next.rb", "lib/ruby2js/converter/ivasgn.rb", "lib/ruby2js/converter/cvasgn.rb", "lib/ruby2js/converter/logical.rb", "lib/ruby2js/converter/sym.rb", "lib/ruby2js/converter/boolean.rb", "lib/ruby2js/converter/masgn.rb", "lib/ruby2js/converter/cvar.rb", "lib/ruby2js/converter/casgn.rb", "lib/ruby2js/sinatra.rb", "lib/ruby2js/filter", "lib/ruby2js/filter/angular-resource.rb", "lib/ruby2js/filter/functions.rb", "lib/ruby2js/filter/angularrb.rb", "lib/ruby2js/filter/return.rb", "lib/ruby2js/filter/underscore.rb", "lib/ruby2js/filter/strict.rb", "lib/ruby2js/filter/minitest-jasmine.rb", "lib/ruby2js/filter/angular-route.rb", "lib/ruby2js/filter/jquery.rb"]
12
+ s.files = ["ruby2js.gemspec", "README.md", "lib/ruby2js", "lib/ruby2js/converter.rb", "lib/ruby2js/version.rb", "lib/ruby2js/filter", "lib/ruby2js/filter/jquery.rb", "lib/ruby2js/filter/return.rb", "lib/ruby2js/filter/underscore.rb", "lib/ruby2js/filter/angularrb.rb", "lib/ruby2js/filter/minitest-jasmine.rb", "lib/ruby2js/filter/camelCase.rb", "lib/ruby2js/filter/strict.rb", "lib/ruby2js/filter/functions.rb", "lib/ruby2js/filter/angular-resource.rb", "lib/ruby2js/filter/angular-route.rb", "lib/ruby2js/sinatra.rb", "lib/ruby2js/rails.rb", "lib/ruby2js/cgi.rb", "lib/ruby2js/converter", "lib/ruby2js/converter/self.rb", "lib/ruby2js/converter/arg.rb", "lib/ruby2js/converter/dstr.rb", "lib/ruby2js/converter/xstr.rb", "lib/ruby2js/converter/sym.rb", "lib/ruby2js/converter/return.rb", "lib/ruby2js/converter/break.rb", "lib/ruby2js/converter/for.rb", "lib/ruby2js/converter/defined.rb", "lib/ruby2js/converter/cvasgn.rb", "lib/ruby2js/converter/whilepost.rb", "lib/ruby2js/converter/logical.rb", "lib/ruby2js/converter/args.rb", "lib/ruby2js/converter/def.rb", "lib/ruby2js/converter/prototype.rb", "lib/ruby2js/converter/class.rb", "lib/ruby2js/converter/opasgn.rb", "lib/ruby2js/converter/module.rb", "lib/ruby2js/converter/kwbegin.rb", "lib/ruby2js/converter/send.rb", "lib/ruby2js/converter/boolean.rb", "lib/ruby2js/converter/masgn.rb", "lib/ruby2js/converter/hash.rb", "lib/ruby2js/converter/cvar.rb", "lib/ruby2js/converter/ivasgn.rb", "lib/ruby2js/converter/case.rb", "lib/ruby2js/converter/const.rb", "lib/ruby2js/converter/vasgn.rb", "lib/ruby2js/converter/untilpost.rb", "lib/ruby2js/converter/begin.rb", "lib/ruby2js/converter/ivar.rb", "lib/ruby2js/converter/while.rb", "lib/ruby2js/converter/next.rb", "lib/ruby2js/converter/nil.rb", "lib/ruby2js/converter/blockpass.rb", "lib/ruby2js/converter/super.rb", "lib/ruby2js/converter/defs.rb", "lib/ruby2js/converter/array.rb", "lib/ruby2js/converter/block.rb", "lib/ruby2js/converter/if.rb", "lib/ruby2js/converter/until.rb", "lib/ruby2js/converter/regexp.rb", "lib/ruby2js/converter/casgn.rb", "lib/ruby2js/converter/undef.rb", "lib/ruby2js/converter/literal.rb", "lib/ruby2js/converter/var.rb", "lib/ruby2js.rb"]
13
13
  s.homepage = "http://github.com/rubys/ruby2js"
14
14
  s.licenses = ["MIT"]
15
15
  s.require_paths = ["lib"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby2js
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-25 00:00:00.000000000 Z
12
+ date: 2014-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parser
@@ -36,67 +36,68 @@ extra_rdoc_files: []
36
36
  files:
37
37
  - ruby2js.gemspec
38
38
  - README.md
39
- - lib/ruby2js.rb
40
39
  - lib/ruby2js/converter.rb
41
40
  - lib/ruby2js/version.rb
42
- - lib/ruby2js/cgi.rb
41
+ - lib/ruby2js/filter/jquery.rb
42
+ - lib/ruby2js/filter/return.rb
43
+ - lib/ruby2js/filter/underscore.rb
44
+ - lib/ruby2js/filter/angularrb.rb
45
+ - lib/ruby2js/filter/minitest-jasmine.rb
46
+ - lib/ruby2js/filter/camelCase.rb
47
+ - lib/ruby2js/filter/strict.rb
48
+ - lib/ruby2js/filter/functions.rb
49
+ - lib/ruby2js/filter/angular-resource.rb
50
+ - lib/ruby2js/filter/angular-route.rb
51
+ - lib/ruby2js/sinatra.rb
43
52
  - lib/ruby2js/rails.rb
44
- - lib/ruby2js/converter/prototype.rb
45
- - lib/ruby2js/converter/begin.rb
46
- - lib/ruby2js/converter/undef.rb
47
- - lib/ruby2js/converter/kwbegin.rb
48
- - lib/ruby2js/converter/const.rb
53
+ - lib/ruby2js/cgi.rb
49
54
  - lib/ruby2js/converter/self.rb
50
- - lib/ruby2js/converter/class.rb
51
- - lib/ruby2js/converter/untilpost.rb
52
- - lib/ruby2js/converter/while.rb
53
- - lib/ruby2js/converter/blockpass.rb
54
- - lib/ruby2js/converter/array.rb
55
- - lib/ruby2js/converter/for.rb
56
- - lib/ruby2js/converter/hash.rb
57
- - lib/ruby2js/converter/block.rb
58
- - lib/ruby2js/converter/def.rb
59
- - lib/ruby2js/converter/nil.rb
60
- - lib/ruby2js/converter/if.rb
61
- - lib/ruby2js/converter/break.rb
62
- - lib/ruby2js/converter/send.rb
63
- - lib/ruby2js/converter/module.rb
64
- - lib/ruby2js/converter/defs.rb
65
- - lib/ruby2js/converter/ivar.rb
66
- - lib/ruby2js/converter/var.rb
67
- - lib/ruby2js/converter/case.rb
68
- - lib/ruby2js/converter/literal.rb
69
- - lib/ruby2js/converter/super.rb
70
- - lib/ruby2js/converter/opasgn.rb
71
- - lib/ruby2js/converter/return.rb
72
55
  - lib/ruby2js/converter/arg.rb
73
- - lib/ruby2js/converter/regexp.rb
74
- - lib/ruby2js/converter/args.rb
75
- - lib/ruby2js/converter/until.rb
76
56
  - lib/ruby2js/converter/dstr.rb
77
- - lib/ruby2js/converter/vasgn.rb
78
- - lib/ruby2js/converter/whilepost.rb
79
57
  - lib/ruby2js/converter/xstr.rb
58
+ - lib/ruby2js/converter/sym.rb
59
+ - lib/ruby2js/converter/return.rb
60
+ - lib/ruby2js/converter/break.rb
61
+ - lib/ruby2js/converter/for.rb
80
62
  - lib/ruby2js/converter/defined.rb
81
- - lib/ruby2js/converter/next.rb
82
- - lib/ruby2js/converter/ivasgn.rb
83
63
  - lib/ruby2js/converter/cvasgn.rb
64
+ - lib/ruby2js/converter/whilepost.rb
84
65
  - lib/ruby2js/converter/logical.rb
85
- - lib/ruby2js/converter/sym.rb
66
+ - lib/ruby2js/converter/args.rb
67
+ - lib/ruby2js/converter/def.rb
68
+ - lib/ruby2js/converter/prototype.rb
69
+ - lib/ruby2js/converter/class.rb
70
+ - lib/ruby2js/converter/opasgn.rb
71
+ - lib/ruby2js/converter/module.rb
72
+ - lib/ruby2js/converter/kwbegin.rb
73
+ - lib/ruby2js/converter/send.rb
86
74
  - lib/ruby2js/converter/boolean.rb
87
75
  - lib/ruby2js/converter/masgn.rb
76
+ - lib/ruby2js/converter/hash.rb
88
77
  - lib/ruby2js/converter/cvar.rb
78
+ - lib/ruby2js/converter/ivasgn.rb
79
+ - lib/ruby2js/converter/case.rb
80
+ - lib/ruby2js/converter/const.rb
81
+ - lib/ruby2js/converter/vasgn.rb
82
+ - lib/ruby2js/converter/untilpost.rb
83
+ - lib/ruby2js/converter/begin.rb
84
+ - lib/ruby2js/converter/ivar.rb
85
+ - lib/ruby2js/converter/while.rb
86
+ - lib/ruby2js/converter/next.rb
87
+ - lib/ruby2js/converter/nil.rb
88
+ - lib/ruby2js/converter/blockpass.rb
89
+ - lib/ruby2js/converter/super.rb
90
+ - lib/ruby2js/converter/defs.rb
91
+ - lib/ruby2js/converter/array.rb
92
+ - lib/ruby2js/converter/block.rb
93
+ - lib/ruby2js/converter/if.rb
94
+ - lib/ruby2js/converter/until.rb
95
+ - lib/ruby2js/converter/regexp.rb
89
96
  - lib/ruby2js/converter/casgn.rb
90
- - lib/ruby2js/sinatra.rb
91
- - lib/ruby2js/filter/angular-resource.rb
92
- - lib/ruby2js/filter/functions.rb
93
- - lib/ruby2js/filter/angularrb.rb
94
- - lib/ruby2js/filter/return.rb
95
- - lib/ruby2js/filter/underscore.rb
96
- - lib/ruby2js/filter/strict.rb
97
- - lib/ruby2js/filter/minitest-jasmine.rb
98
- - lib/ruby2js/filter/angular-route.rb
99
- - lib/ruby2js/filter/jquery.rb
97
+ - lib/ruby2js/converter/undef.rb
98
+ - lib/ruby2js/converter/literal.rb
99
+ - lib/ruby2js/converter/var.rb
100
+ - lib/ruby2js.rb
100
101
  homepage: http://github.com/rubys/ruby2js
101
102
  licenses:
102
103
  - MIT