synvert-core 0.11.1 → 0.12.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 +3 -1
- data/lib/synvert/core/node_ext.rb +14 -2
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/node_ext_spec.rb +23 -0
- data/synvert-core.gemspec +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d61232152e2ef89cc90d9d7a9e9e49f9cb8ebd53
|
|
4
|
+
data.tar.gz: 884b2528e76a0567af07e5fa656abfa6b5a43a65
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 10f7d31b1d168ade874ef776585baf53d1c0d8791a2a39f693ca9d66fd346cf72cb395d9c5e0fedec68ed4b49616a0082d81985f51816873c20f2739ad16c667
|
|
7
|
+
data.tar.gz: a3fb5a0ba5851f2160dfd84e271b1a8dfd62dbe50e07e35fd102523b245de6e79f88f159e3a81db6f7f827761c09c933cfea5e0a1f3b0701ade9b8d13484571a
|
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, :def and :defs node.
|
|
27
|
+
# Get name node of :class, :module, :const, :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.
|
|
@@ -32,7 +32,7 @@ module Parser::AST
|
|
|
32
32
|
case self.type
|
|
33
33
|
when :class, :module, :def, :arg, :blockarg
|
|
34
34
|
self.children[0]
|
|
35
|
-
when :defs
|
|
35
|
+
when :defs, :const
|
|
36
36
|
self.children[1]
|
|
37
37
|
else
|
|
38
38
|
raise Synvert::Core::MethodNotSupported.new "name is not handled for #{self.debug_info}"
|
|
@@ -51,6 +51,18 @@ module Parser::AST
|
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
# Get parent constant node of :const node.
|
|
55
|
+
#
|
|
56
|
+
# @return [Parser::AST::Node] parent const node.
|
|
57
|
+
# @raise [Synvert::Core::MethodNotSupported] if calls on other node.
|
|
58
|
+
def parent_const
|
|
59
|
+
if :const == self.type
|
|
60
|
+
self.children[0]
|
|
61
|
+
else
|
|
62
|
+
raise Synvert::Core::MethodNotSupported.new "parent_const is not handled for #{self.debug_info}"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
54
66
|
# Get receiver node of :send node.
|
|
55
67
|
#
|
|
56
68
|
# @return [Parser::AST::Node] receiver node.
|
data/lib/synvert/core/version.rb
CHANGED
|
@@ -34,6 +34,12 @@ describe Parser::AST::Node do
|
|
|
34
34
|
node = parse('def test(&block); end')
|
|
35
35
|
expect(node.arguments.first.name).to eq :block
|
|
36
36
|
end
|
|
37
|
+
|
|
38
|
+
it 'gets for const node' do
|
|
39
|
+
node = parse('Synvert')
|
|
40
|
+
expect(node.name).to eq :Synvert
|
|
41
|
+
end
|
|
42
|
+
|
|
37
43
|
end
|
|
38
44
|
|
|
39
45
|
describe '#parent_class' do
|
|
@@ -57,6 +63,23 @@ describe Parser::AST::Node do
|
|
|
57
63
|
end
|
|
58
64
|
end
|
|
59
65
|
|
|
66
|
+
describe '#parent_const' do
|
|
67
|
+
it 'gets for const node' do
|
|
68
|
+
node = parse('Synvert::Node')
|
|
69
|
+
expect(node.parent_const).to eq parse('Synvert')
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'gets for const node at the root' do
|
|
73
|
+
node = parse('::Node')
|
|
74
|
+
expect(node.parent_const.type).to eq :cbase
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it 'gets for const node with no parent' do
|
|
78
|
+
node = parse('Node')
|
|
79
|
+
expect(node.parent_const).to eq nil
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
60
83
|
describe '#arguments' do
|
|
61
84
|
it 'gets for def node' do
|
|
62
85
|
node = parse("def test(foo, bar); foo + bar; end")
|
data/synvert-core.gemspec
CHANGED
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
19
|
spec.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
-
spec.add_runtime_dependency "parser", "2.
|
|
21
|
+
spec.add_runtime_dependency "parser", "~> 2.4.0"
|
|
22
22
|
spec.add_runtime_dependency "activesupport"
|
|
23
23
|
spec.add_runtime_dependency "erubis"
|
|
24
24
|
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: synvert-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.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:
|
|
11
|
+
date: 2017-02-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: parser
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 2.
|
|
19
|
+
version: 2.4.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 2.
|
|
26
|
+
version: 2.4.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: activesupport
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -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.
|
|
213
|
+
rubygems_version: 2.5.2
|
|
214
214
|
signing_key:
|
|
215
215
|
specification_version: 4
|
|
216
216
|
summary: convert ruby code to better syntax.
|