synvert-core 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/synvert/core/node_ext.rb +5 -3
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/node_ext_spec.rb +24 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e61e52508b0f3dd263ef8dd9ddc0ec8441d43846
|
4
|
+
data.tar.gz: 4e23518975d109369caa39b5a357fe237800ad23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edc8aaef7f0328efa7e0af725621b09be308033a51ec7ffc6da2e630f53e1bb9ab661ef62cb479949d72ed4a0d94a6661cd9ac1dde010086a6b317882cec90aa
|
7
|
+
data.tar.gz: 54f92440ca353f2c2183af72e8a4f8a7b3ba0cd1b08e0ff1facf7bbd8fc1745de5ef101fa3dfdf63696f66a7ff67926179149da0a9754d1e8aee1e74c2301989
|
data/CHANGELOG.md
CHANGED
@@ -30,7 +30,7 @@ module Parser::AST
|
|
30
30
|
# @raise [Synvert::Core::MethodNotSupported] if calls on other node.
|
31
31
|
def name
|
32
32
|
case self.type
|
33
|
-
when :class, :module, :def
|
33
|
+
when :class, :module, :def, :arg, :blockarg
|
34
34
|
self.children[0]
|
35
35
|
when :defs
|
36
36
|
self.children[1]
|
@@ -81,10 +81,12 @@ module Parser::AST
|
|
81
81
|
# @raise [Synvert::Core::MethodNotSupported] if calls on other node.
|
82
82
|
def arguments
|
83
83
|
case self.type
|
84
|
+
when :def, :block
|
85
|
+
ArgumentsNode.new self.children[1]
|
86
|
+
when :defs
|
87
|
+
ArgumentsNode.new self.children[2]
|
84
88
|
when :send
|
85
89
|
self.children[2..-1]
|
86
|
-
when :block
|
87
|
-
ArgumentsNode.new self.children[1]
|
88
90
|
when :defined?
|
89
91
|
self.children
|
90
92
|
else
|
data/lib/synvert/core/version.rb
CHANGED
@@ -24,6 +24,16 @@ describe Parser::AST::Node do
|
|
24
24
|
node = parse('def self.current_node; end')
|
25
25
|
expect(node.name).to eq :current_node
|
26
26
|
end
|
27
|
+
|
28
|
+
it 'gets for arg node' do
|
29
|
+
node = parse('def test(foo); end')
|
30
|
+
expect(node.arguments.first.name).to eq :foo
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'gets for blockarg node' do
|
34
|
+
node = parse('def test(&block); end')
|
35
|
+
expect(node.arguments.first.name).to eq :block
|
36
|
+
end
|
27
37
|
end
|
28
38
|
|
29
39
|
describe '#parent_class' do
|
@@ -48,17 +58,26 @@ describe Parser::AST::Node do
|
|
48
58
|
end
|
49
59
|
|
50
60
|
describe '#arguments' do
|
51
|
-
it 'gets for
|
52
|
-
node = parse("
|
53
|
-
expect(node.arguments).to eq
|
61
|
+
it 'gets for def node' do
|
62
|
+
node = parse("def test(foo, bar); foo + bar; end")
|
63
|
+
expect(node.arguments.map { |argument| argument.to_source }).to eq ['foo', 'bar']
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'gets for defs node' do
|
67
|
+
node = parse("def self.test(foo, bar); foo + bar; end")
|
68
|
+
expect(node.arguments.map { |argument| argument.to_source }).to eq ['foo', 'bar']
|
54
69
|
end
|
55
70
|
|
56
71
|
it 'gets for block node' do
|
57
|
-
|
58
|
-
node = parse(source)
|
72
|
+
node = parse('RSpec.configure do |config|; end')
|
59
73
|
expect(node.arguments.map { |argument| argument.to_source }).to eq ['config']
|
60
74
|
end
|
61
75
|
|
76
|
+
it 'gets for send node' do
|
77
|
+
node = parse("FactoryGirl.create :post, title: 'post'")
|
78
|
+
expect(node.arguments).to eq parse("[:post, title: 'post']").children
|
79
|
+
end
|
80
|
+
|
62
81
|
it 'gets for defined? node' do
|
63
82
|
node = parse('defined?(Bundler)')
|
64
83
|
expect(node.arguments).to eq [parse('Bundler')]
|
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.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|