synvert-core 0.6.3 → 0.6.4

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: bccfebdd70bca3e49d4fd8cf7ca2fb766cdc8d2c
4
- data.tar.gz: 40b8ff41f248de2a48a289ceaaf00303d3f78c14
3
+ metadata.gz: e61e52508b0f3dd263ef8dd9ddc0ec8441d43846
4
+ data.tar.gz: 4e23518975d109369caa39b5a357fe237800ad23
5
5
  SHA512:
6
- metadata.gz: 1724274f0715e0a0b523ed0f4985c7665c6a8deee24244378eabd5b934d1a895742a3fc3bc0bc33ba637ad5110d75afae77091857df895f5aacc0d3721c978df
7
- data.tar.gz: 2578b1a620f8798376fcf4868e2cfce426b6552426dd28ae3fd34bcc157d0223fed65ad7eb7966b2ad19f037ff527bd25f49eca4182c1594f276786f5de6df5e
6
+ metadata.gz: edc8aaef7f0328efa7e0af725621b09be308033a51ec7ffc6da2e630f53e1bb9ab661ef62cb479949d72ed4a0d94a6661cd9ac1dde010086a6b317882cec90aa
7
+ data.tar.gz: 54f92440ca353f2c2183af72e8a4f8a7b3ba0cd1b08e0ff1facf7bbd8fc1745de5ef101fa3dfdf63696f66a7ff67926179149da0a9754d1e8aee1e74c2301989
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.6.4
4
+
5
+ * Add arguments for def and defs nodes
6
+ * Add name for arg and blockarg nodes
7
+
3
8
  ## 0.6.3
4
9
 
5
10
  * Rewriter.available always returns a hash
@@ -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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.6.3"
5
+ VERSION = "0.6.4"
6
6
  end
7
7
  end
@@ -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 send node' do
52
- node = parse("FactoryGirl.create :post, title: 'post'")
53
- expect(node.arguments).to eq parse("[:post, title: 'post']").children
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
- source = 'RSpec.configure do |config|; end'
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.3
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-15 00:00:00.000000000 Z
11
+ date: 2014-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser