synvert-core 0.11.1 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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.