ruby2js 2.1.7 → 2.1.8

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a277807e88b954b5a9619db0bb63ec6dd0005e46
4
- data.tar.gz: a23009a0456e561d89ee78f1e30eef1a1253e932
3
+ metadata.gz: dc7aa6e17a303aa03f78a4f25bf01ec99dde4f34
4
+ data.tar.gz: 583531eec09eecf50076131ff8affccc95839b80
5
5
  SHA512:
6
- metadata.gz: 853c846f55f18bbb2ddf2b9695020ff01a3188ba08a8b2787604affb88aa764aa7600a0a44366dce31a387a908abe8f5d62f621778c5bb79e1ad46d558bda599
7
- data.tar.gz: 86b1c6c03a8e4c36d21c47616f6061585d81b0fd62abea2c3202b336b320d44b2b36b5ee3dfb09969f0b0c42bee6d3da9bfebdb9ff79910e1bee6cb2bd570d60
6
+ metadata.gz: 6510a902460ad8073f710bfb2facb174121dcefc3884a9a69a65ee8ec18c43c4848d29c9e8055c0da10ebe3b181ae816e88093202ced6ec72f7ef7a5303e9fe4
7
+ data.tar.gz: '09cc922113d70a4fb096ef7f73e7e752d18fd0d68ba65be974b55cb8f35db12ecef63fd3f84dcf1307731905c3a92657c07a1ffff0575ff314cde5843b355052'
@@ -30,9 +30,16 @@ module Ruby2JS
30
30
 
31
31
  while else_block and else_block.type == :if
32
32
  condition, then_block, else_block = else_block.children
33
- put ' else if ('; parse condition; puts ') {'
34
- parse then_block, :statement
35
- sput '}'
33
+ if then_block
34
+ put ' else if ('; parse condition; puts ') {'
35
+ parse then_block, :statement
36
+ sput '}'
37
+ else
38
+ put ' else if ('; parse s(:not, condition); puts ') {'
39
+ parse else_block, :statement
40
+ sput '}'
41
+ else_block = nil
42
+ end
36
43
  end
37
44
 
38
45
  if else_block
@@ -25,7 +25,8 @@ module Ruby2JS
25
25
  @vue_self = nil
26
26
  @vue_apply = nil
27
27
  @vue_inventory = Hash.new {|h, k| h[k] = []}
28
- @vue_instance = []
28
+ @vue_methods = []
29
+ @vue_props = []
29
30
  super
30
31
  end
31
32
 
@@ -73,15 +74,22 @@ module Ruby2JS
73
74
  end
74
75
 
75
76
  @vue_inventory = vue_walk(node)
76
- @vue_instance = []
77
+ @vue_methods = []
78
+ @vue_props = []
77
79
 
78
80
  # collect instance methods (including getters and setters)
79
81
  body.each do |statement|
80
82
  if statement.type == :def
81
83
  method = statement.children.first
82
84
  unless VUE_LIFECYCLE.include? method or method == :initialize
83
- method = method.to_s[0..-2].to_sym if method.to_s.end_with? '='
84
- @vue_instance << method unless @vue_instance.include? method
85
+ if method.to_s.end_with? '='
86
+ method = method.to_s[0..-2].to_sym
87
+ @vue_props << method unless @vue_props.include? method
88
+ elsif statement.is_method?
89
+ @vue_methods << method unless @vue_methods.include? method
90
+ else
91
+ @vue_props << method unless @vue_props.include? method
92
+ end
85
93
  end
86
94
  end
87
95
  end
@@ -226,7 +234,7 @@ module Ruby2JS
226
234
  hash << s(:pair, s(:sym, :methods), s(:hash, *methods))
227
235
  end
228
236
 
229
- @vue_instance = []
237
+ @vue_methods = []
230
238
 
231
239
  # append setters to computed list
232
240
  setters.each do |setter|
@@ -338,9 +346,20 @@ module Ruby2JS
338
346
  end
339
347
 
340
348
  # calls to methods (including getters) defined in this class
341
- if node.children[0]==nil and @vue_instance.include? node.children[1]
342
- return node.updated nil, [s(:self), node.children[1],
343
- *process_all(node.children[2..-1])]
349
+ if node.children[0]==nil and Symbol === node.children[1]
350
+ if node.is_method?
351
+ if @vue_methods.include? node.children[1]
352
+ # calls to methods defined in this class
353
+ return node.updated nil, [s(:self), node.children[1],
354
+ *process_all(node.children[2..-1])]
355
+ end
356
+ else
357
+ if @vue_props.include? node.children[1]
358
+ # access to properties defined in this class
359
+ return node.updated nil, [s(:self), node.children[1],
360
+ *process_all(node.children[2..-1])]
361
+ end
362
+ end
344
363
  end
345
364
 
346
365
  return super unless @vue_h
@@ -863,7 +882,7 @@ module Ruby2JS
863
882
 
864
883
  elsif
865
884
  node.children.first.type == :lvasgn and
866
- @vue_instance.include? node.children[0].children[0]
885
+ @vue_props.include? node.children[0].children[0]
867
886
  then
868
887
  node.updated nil, [s(:attr, s(:self),
869
888
  node.children[0].children[0]),
@@ -876,7 +895,7 @@ module Ruby2JS
876
895
 
877
896
  # for computed variables with setters, map x= to this.x=
878
897
  def on_lvasgn(node)
879
- return super unless @vue_instance.include? node.children.first
898
+ return super unless @vue_props.include? node.children.first
880
899
  s(:send, s(:self), "#{node.children.first}=",
881
900
  process(node.children[1]))
882
901
  end
@@ -229,6 +229,7 @@ module Ruby2JS
229
229
  slice = @lines[mark.first..-1]
230
230
  reindent(slice)
231
231
  slice.each_with_index do |line, index|
232
+ line << "" if line.empty?
232
233
  if line.first.start_with? '//'
233
234
  len += @width # comments are a deal breaker
234
235
  else
@@ -2,7 +2,7 @@ module Ruby2JS
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 2
4
4
  MINOR = 1
5
- TINY = 7
5
+ TINY = 8
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/ruby2js.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: ruby2js 2.1.7 ruby lib
2
+ # stub: ruby2js 2.1.8 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "ruby2js".freeze
6
- s.version = "2.1.7"
6
+ s.version = "2.1.8"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Sam Ruby".freeze]
11
- s.date = "2017-09-13"
11
+ s.date = "2017-09-16"
12
12
  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".freeze
13
13
  s.email = "rubys@intertwingly.net".freeze
14
14
  s.files = ["README.md".freeze, "lib/ruby2js".freeze, "lib/ruby2js.rb".freeze, "lib/ruby2js/cgi.rb".freeze, "lib/ruby2js/converter".freeze, "lib/ruby2js/converter.rb".freeze, "lib/ruby2js/converter/arg.rb".freeze, "lib/ruby2js/converter/args.rb".freeze, "lib/ruby2js/converter/array.rb".freeze, "lib/ruby2js/converter/begin.rb".freeze, "lib/ruby2js/converter/block.rb".freeze, "lib/ruby2js/converter/blockpass.rb".freeze, "lib/ruby2js/converter/boolean.rb".freeze, "lib/ruby2js/converter/break.rb".freeze, "lib/ruby2js/converter/case.rb".freeze, "lib/ruby2js/converter/casgn.rb".freeze, "lib/ruby2js/converter/class.rb".freeze, "lib/ruby2js/converter/const.rb".freeze, "lib/ruby2js/converter/cvar.rb".freeze, "lib/ruby2js/converter/cvasgn.rb".freeze, "lib/ruby2js/converter/def.rb".freeze, "lib/ruby2js/converter/defined.rb".freeze, "lib/ruby2js/converter/defs.rb".freeze, "lib/ruby2js/converter/dstr.rb".freeze, "lib/ruby2js/converter/for.rb".freeze, "lib/ruby2js/converter/hash.rb".freeze, "lib/ruby2js/converter/if.rb".freeze, "lib/ruby2js/converter/in.rb".freeze, "lib/ruby2js/converter/ivar.rb".freeze, "lib/ruby2js/converter/ivasgn.rb".freeze, "lib/ruby2js/converter/kwbegin.rb".freeze, "lib/ruby2js/converter/literal.rb".freeze, "lib/ruby2js/converter/logical.rb".freeze, "lib/ruby2js/converter/masgn.rb".freeze, "lib/ruby2js/converter/module.rb".freeze, "lib/ruby2js/converter/next.rb".freeze, "lib/ruby2js/converter/nil.rb".freeze, "lib/ruby2js/converter/nthref.rb".freeze, "lib/ruby2js/converter/opasgn.rb".freeze, "lib/ruby2js/converter/prototype.rb".freeze, "lib/ruby2js/converter/regexp.rb".freeze, "lib/ruby2js/converter/return.rb".freeze, "lib/ruby2js/converter/self.rb".freeze, "lib/ruby2js/converter/send.rb".freeze, "lib/ruby2js/converter/super.rb".freeze, "lib/ruby2js/converter/sym.rb".freeze, "lib/ruby2js/converter/undef.rb".freeze, "lib/ruby2js/converter/until.rb".freeze, "lib/ruby2js/converter/untilpost.rb".freeze, "lib/ruby2js/converter/var.rb".freeze, "lib/ruby2js/converter/vasgn.rb".freeze, "lib/ruby2js/converter/while.rb".freeze, "lib/ruby2js/converter/whilepost.rb".freeze, "lib/ruby2js/converter/xstr.rb".freeze, "lib/ruby2js/execjs.rb".freeze, "lib/ruby2js/filter".freeze, "lib/ruby2js/filter/angular-resource.rb".freeze, "lib/ruby2js/filter/angular-route.rb".freeze, "lib/ruby2js/filter/angularrb.rb".freeze, "lib/ruby2js/filter/camelCase.rb".freeze, "lib/ruby2js/filter/functions.rb".freeze, "lib/ruby2js/filter/jquery.rb".freeze, "lib/ruby2js/filter/minitest-jasmine.rb".freeze, "lib/ruby2js/filter/react.rb".freeze, "lib/ruby2js/filter/require.rb".freeze, "lib/ruby2js/filter/return.rb".freeze, "lib/ruby2js/filter/rubyjs.rb".freeze, "lib/ruby2js/filter/strict.rb".freeze, "lib/ruby2js/filter/underscore.rb".freeze, "lib/ruby2js/filter/vue.rb".freeze, "lib/ruby2js/rails.rb".freeze, "lib/ruby2js/serializer.rb".freeze, "lib/ruby2js/sinatra.rb".freeze, "lib/ruby2js/version.rb".freeze, "ruby2js.gemspec".freeze]
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: 2.1.7
4
+ version: 2.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-13 00:00:00.000000000 Z
11
+ date: 2017-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser