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 +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.
|