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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e44cab5416bd9de8678694d4ce6e43ab51987f48
4
- data.tar.gz: f995113c274ee42968de2328ffe813978d3d19db
3
+ metadata.gz: d61232152e2ef89cc90d9d7a9e9e49f9cb8ebd53
4
+ data.tar.gz: 884b2528e76a0567af07e5fa656abfa6b5a43a65
5
5
  SHA512:
6
- metadata.gz: 4f3913e797193b3628db4471ccd7878482985156d96414cc900447de827db6de0a8adc0f3bd39b7e9d73d1e1599e240faea15ffe52b4bec0d0b6bc1ea7fed81b
7
- data.tar.gz: 3cb996acbece4316c55dd8dfae6aaf93b0c45ae5773c199e63bc56ee89a4d29cce6dd57a06957d0b02a5fc7fee4ece45d2f8bcb21a5427e4c2fca0164e6adbaf
6
+ metadata.gz: 10f7d31b1d168ade874ef776585baf53d1c0d8791a2a39f693ca9d66fd346cf72cb395d9c5e0fedec68ed4b49616a0082d81985f51816873c20f2739ad16c667
7
+ data.tar.gz: a3fb5a0ba5851f2160dfd84e271b1a8dfd62dbe50e07e35fd102523b245de6e79f88f159e3a81db6f7f827761c09c933cfea5e0a1f3b0701ade9b8d13484571a
data/CHANGELOG.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 0.11.1
3
+ ## 0.12.0
4
4
 
5
+ * Use parser 2.4.0.0
6
+ * Add parent_const accessor for constant nodes with a namespace
5
7
  * Warning if add_file already exists and make sure directory exists for add_file
6
8
 
7
9
  ## 0.11.0 (2016-07-31)
@@ -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.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.11.1"
5
+ VERSION = "0.12.0"
6
6
  end
7
7
  end
@@ -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.3.1.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.11.1
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: 2016-07-31 00:00:00.000000000 Z
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.3.1.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.3.1.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.1
213
+ rubygems_version: 2.5.2
214
214
  signing_key:
215
215
  specification_version: 4
216
216
  summary: convert ruby code to better syntax.