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 +4 -4
- data/CHANGELOG.md +6 -1
- data/lib/synvert/core/node_ext.rb +14 -3
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/node_ext_spec.rb +16 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a7790a11ab7100de6d1a2746ce4dce7616612b1
|
4
|
+
data.tar.gz: 004a32547dc269fc9afc6a17d2c0b25a8eec16e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2df91080d3fb34c75ec0247e8fdd0eb280bc9cc395a2e37221e5c2e75a349cccf934b261248d3fd8d7f046a805ac3960a80877f54f2e5f28df9e4ac0921d5b3
|
7
|
+
data.tar.gz: fad47d3d659060356d1774441ce746bbcf006b5845f45edce32fe8b62593d271648ec62927facd7b6aeaf5c0b6fc1ebdb2a8b623350580ec9efc3522cdc5be9e
|
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
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}",
|
data/lib/synvert/core/version.rb
CHANGED
@@ -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.
|
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-
|
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.
|
213
|
+
rubygems_version: 2.6.10
|
214
214
|
signing_key:
|
215
215
|
specification_version: 4
|
216
216
|
summary: convert ruby code to better syntax.
|