synvert-core 0.12.0 → 0.13.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.
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.