synvert-core 0.6.4 → 0.6.5

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: e61e52508b0f3dd263ef8dd9ddc0ec8441d43846
4
- data.tar.gz: 4e23518975d109369caa39b5a357fe237800ad23
3
+ metadata.gz: c69ab4da0af0653167d9dfe2e71304529c95f229
4
+ data.tar.gz: b9be8a50e3742075c6794f1a382ed0deb78cf7b1
5
5
  SHA512:
6
- metadata.gz: edc8aaef7f0328efa7e0af725621b09be308033a51ec7ffc6da2e630f53e1bb9ab661ef62cb479949d72ed4a0d94a6661cd9ac1dde010086a6b317882cec90aa
7
- data.tar.gz: 54f92440ca353f2c2183af72e8a4f8a7b3ba0cd1b08e0ff1facf7bbd8fc1745de5ef101fa3dfdf63696f66a7ff67926179149da0a9754d1e8aee1e74c2301989
6
+ metadata.gz: 77432c6fe75a540234f968e75b6912693b2abef90865c1bad86d9e657e12f54f818d9286aaf70be35a612911f87420768d97b1388381226f9974ba853d3f1004
7
+ data.tar.gz: 32a22daf02eef74d970d38afb72877979fc95493b0631df472593c8d096e3d4ba133d5226f7d2a6501a43a7da1e003d0cb011a8b967ec7cfb30d507bef7e7e09
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.6.5
4
+
5
+ * Add left_value and right_vaue ext to ast node
6
+
3
7
  ## 0.6.4
4
8
 
5
9
  * Add arguments for def and defs nodes
@@ -212,6 +212,36 @@ module Parser::AST
212
212
  end
213
213
  end
214
214
 
215
+ # Return the left value.
216
+ #
217
+ # @return [Array<Parser::AST::Node>] variable nodes.
218
+ # @raise [Synvert::Core::MethodNotSupported] if calls on other node.
219
+ def left_value
220
+ case self.type
221
+ when :masgn
222
+ self.children[0].children
223
+ when :lvasgn, :ivasgn
224
+ self.children[0]
225
+ else
226
+ raise Synvert::Core::MethodNotSupported.new "left_value is not handled for #{self.inspect}"
227
+ end
228
+ end
229
+
230
+ # Return the right value.
231
+ #
232
+ # @return [Array<Parser::AST::Node>] variable nodes.
233
+ # @raise [Synvert::Core::MethodNotSupported] if calls on other node.
234
+ def right_value
235
+ case self.type
236
+ when :masgn
237
+ self.children[1].children
238
+ when :lvasgn, :ivasgn
239
+ self.children[1]
240
+ else
241
+ raise Synvert::Core::MethodNotSupported.new "right_value is not handled for #{self.inspect}"
242
+ end
243
+ end
244
+
215
245
  # Return the exact value.
216
246
  #
217
247
  # @return [Object] exact value.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.6.4"
5
+ VERSION = "0.6.5"
6
6
  end
7
7
  end
@@ -187,6 +187,40 @@ describe Parser::AST::Node do
187
187
  end
188
188
  end
189
189
 
190
+ describe "#left_value" do
191
+ it 'gets for masgn' do
192
+ node = parse("a, b = 1, 2")
193
+ expect(node.left_value.map(&:to_source)).to eq ['a', 'b']
194
+ end
195
+
196
+ it 'gets for lvasgn' do
197
+ node = parse("a = 1")
198
+ expect(node.left_value).to eq :a
199
+ end
200
+
201
+ it 'gets for ivasgn' do
202
+ node = parse("@a = 1")
203
+ expect(node.left_value).to eq :@a
204
+ end
205
+ end
206
+
207
+ describe "#right_value" do
208
+ it 'gets for masgn' do
209
+ node = parse("a, b = 1, 2")
210
+ expect(node.right_value).to eq [parse("1"), parse("2")]
211
+ end
212
+
213
+ it 'gets for lvasgn' do
214
+ node = parse("a = 1")
215
+ expect(node.right_value).to eq parse("1")
216
+ end
217
+
218
+ it 'gets for ivasgn' do
219
+ node = parse("@a = 1")
220
+ expect(node.right_value).to eq parse("1")
221
+ end
222
+ end
223
+
190
224
  describe "#to_value" do
191
225
  it 'gets for int' do
192
226
  node = parse("1")
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
4
+ version: 0.6.5
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-27 00:00:00.000000000 Z
11
+ date: 2014-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser