synvert-core 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d61232152e2ef89cc90d9d7a9e9e49f9cb8ebd53
4
- data.tar.gz: 884b2528e76a0567af07e5fa656abfa6b5a43a65
3
+ metadata.gz: 9a7790a11ab7100de6d1a2746ce4dce7616612b1
4
+ data.tar.gz: 004a32547dc269fc9afc6a17d2c0b25a8eec16e8
5
5
  SHA512:
6
- metadata.gz: 10f7d31b1d168ade874ef776585baf53d1c0d8791a2a39f693ca9d66fd346cf72cb395d9c5e0fedec68ed4b49616a0082d81985f51816873c20f2739ad16c667
7
- data.tar.gz: a3fb5a0ba5851f2160dfd84e271b1a8dfd62dbe50e07e35fd102523b245de6e79f88f159e3a81db6f7f827761c09c933cfea5e0a1f3b0701ade9b8d13484571a
6
+ metadata.gz: d2df91080d3fb34c75ec0247e8fdd0eb280bc9cc395a2e37221e5c2e75a349cccf934b261248d3fd8d7f046a805ac3960a80877f54f2e5f28df9e4ac0921d5b3
7
+ data.tar.gz: fad47d3d659060356d1774441ce746bbcf006b5845f45edce32fe8b62593d271648ec62927facd7b6aeaf5c0b6fc1ebdb2a8b623350580ec9efc3522cdc5be9e
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 0.12.0
3
+ ## 0.13.0 (2017-04-15)
4
+
5
+ * Add message for super node
6
+ * Add name and to_s for mlhs node
7
+
8
+ ## 0.12.0 (2017-02-18)
4
9
 
5
10
  * Use parser 2.4.0.0
6
11
  * Add parent_const accessor for constant nodes with a namespace
@@ -24,7 +24,7 @@ module Parser::AST
24
24
 
25
25
  # Parser::AST::Node monkey patch.
26
26
  class Node
27
- # Get name node of :class, :module, :const, :def and :defs node.
27
+ # Get name node of :class, :module, :const, :mlhs, :def and :defs node.
28
28
  #
29
29
  # @return [Parser::AST::Node] name node.
30
30
  # @raise [Synvert::Core::MethodNotSupported] if calls on other node.
@@ -34,6 +34,8 @@ module Parser::AST
34
34
  self.children[0]
35
35
  when :defs, :const
36
36
  self.children[1]
37
+ when :mlhs
38
+ self
37
39
  else
38
40
  raise Synvert::Core::MethodNotSupported.new "name is not handled for #{self.debug_info}"
39
41
  end
@@ -75,12 +77,15 @@ module Parser::AST
75
77
  end
76
78
  end
77
79
 
78
- # Get message node of :send node.
80
+ # Get message node of :super or :send node.
79
81
  #
80
82
  # @return [Parser::AST::Node] mesage node.
81
83
  # @raise [Synvert::Core::MethodNotSupported] if calls on other node.
82
84
  def message
83
- if :send == self.type
85
+ case self.type
86
+ when :super
87
+ :super
88
+ when :send
84
89
  self.children[1]
85
90
  else
86
91
  raise Synvert::Core::MethodNotSupported.new "message is not handled for #{self.debug_info}"
@@ -271,6 +276,12 @@ module Parser::AST
271
276
  end
272
277
  end
273
278
 
279
+ def to_s
280
+ if :mlhs == self.type
281
+ "(#{self.children.map(&:name).join(', ')})"
282
+ end
283
+ end
284
+
274
285
  def debug_info
275
286
  "\n" + [
276
287
  "file: #{self.loc.expression.source_buffer.name}",
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.12.0"
5
+ VERSION = "0.13.0"
6
6
  end
7
7
  end
@@ -40,6 +40,10 @@ describe Parser::AST::Node do
40
40
  expect(node.name).to eq :Synvert
41
41
  end
42
42
 
43
+ it 'gets for mlhs node' do
44
+ node = parse('var.each { |(param1, param2)| }')
45
+ expect(node.arguments.first.name).to eq node.arguments.first
46
+ end
43
47
  end
44
48
 
45
49
  describe '#parent_class' do
@@ -61,6 +65,11 @@ describe Parser::AST::Node do
61
65
  node = parse('FactoryGirl.create :post')
62
66
  expect(node.message).to eq :create
63
67
  end
68
+
69
+ it 'gets for super node' do
70
+ node = parse('super(params)')
71
+ expect(node.message).to eq :super
72
+ end
64
73
  end
65
74
 
66
75
  describe '#parent_const' do
@@ -283,6 +292,13 @@ describe Parser::AST::Node do
283
292
  end
284
293
  end
285
294
 
295
+ describe '#to_s' do
296
+ it 'gets for mlhs node' do
297
+ node = parse('var.each { |(param1, param2)| }')
298
+ expect(node.arguments.first.to_s).to eq '(param1, param2)'
299
+ end
300
+ end
301
+
286
302
  describe '#to_source' do
287
303
  it 'gets for node' do
288
304
  source = 'params[:user][:email]'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synvert-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-18 00:00:00.000000000 Z
11
+ date: 2017-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -210,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
210
  version: '0'
211
211
  requirements: []
212
212
  rubyforge_project:
213
- rubygems_version: 2.5.2
213
+ rubygems_version: 2.6.10
214
214
  signing_key:
215
215
  specification_version: 4
216
216
  summary: convert ruby code to better syntax.