synvert-core 0.42.1 → 0.44.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
  SHA256:
3
- metadata.gz: c29440498ff5186fde3ea7828482bfc0e93551350682f68b2fd26f3054894460
4
- data.tar.gz: 055d1a185ed10f154f3b6a5ee99d8f142ead2a62935e461f3b73d15a32822496
3
+ metadata.gz: f858973b7f9b7bcfd9260bf3149cb76d841279e45302c52905164b2ae464e2f1
4
+ data.tar.gz: df45fb62ee7cf5c6aed86bc7e78a2c610b328b124e97a6ef6e009fdcc500d263
5
5
  SHA512:
6
- metadata.gz: 757170374b87d2941befeaa9e1d17681bfff6bd8486880dec9fa9549e4a71ec660983e7f8bf3d9e71046ae4d24c4fc4ec0282aba71d62cd5de240d3f36962f5e
7
- data.tar.gz: ad55dd58dc35f53804d11a99f2dc926881b84a05eb0e13ab3f0a3c07e374fddb1dd8ddae91ec1d8a36a3564d3c61ab3bf1c0282ac45193cb4cc93e90500ef17d
6
+ metadata.gz: cc6cbfa30627b61cf345834fd736e3795fbc6c4a6e063758459245f53cfc1954d5bbc477dc6a262f8a8754e0dbcd0f089d2196ef7edc7ce7e04b6141a374808e
7
+ data.tar.gz: 5bb7b3ad077e71753a4025416f62ee2c2979b8048466d34043c267b26ec92bf50ab850d57abaffd8f32013dab1d314ced834ed0b2f0e1bedbf70cb3c61d34fc9
data/CHANGELOG.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
- # 0.42.1 (2021-07-14)
3
+ # 0.44.0 (2021-07-19)
4
4
 
5
5
  * Return rewrtier after executing snippet
6
+ * `left_value` and `right_value` support `or_asgn` node
7
+ * `child_node_range` supports send `parentheses`
6
8
 
7
9
  # 0.42.0 (2021-07-11)
8
10
 
@@ -217,6 +217,8 @@ module Parser::AST
217
217
  def left_value
218
218
  if %i[masgn lvasgn ivasgn].include? type
219
219
  children[0]
220
+ elsif :or_asgn == type
221
+ children[0].children[0]
220
222
  else
221
223
  raise Synvert::Core::MethodNotSupported, "left_value is not handled for #{debug_info}"
222
224
  end
@@ -227,7 +229,7 @@ module Parser::AST
227
229
  # @return [Array<Parser::AST::Node>] variable nodes.
228
230
  # @raise [Synvert::Core::MethodNotSupported] if calls on other node.
229
231
  def right_value
230
- if %i[masgn lvasgn ivasgn].include? type
232
+ if %i[masgn lvasgn ivasgn or_asgn].include? type
231
233
  children[1]
232
234
  else
233
235
  raise Synvert::Core::MethodNotSupported, "right_value is not handled for #{debug_info}"
@@ -360,6 +362,12 @@ module Parser::AST
360
362
  else
361
363
  loc.selector
362
364
  end
365
+ when %i[send parentheses]
366
+ if loc.begin && loc.end
367
+ Parser::Source::Range.new('(string)', loc.begin.begin_pos, loc.end.end_pos)
368
+ else
369
+ nil
370
+ end
363
371
  else
364
372
  if respond_to?(child_name)
365
373
  child_node = send(child_name)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '0.42.1'
5
+ VERSION = '0.44.0'
6
6
  end
7
7
  end
@@ -261,6 +261,11 @@ describe Parser::AST::Node do
261
261
  node = parse('@a = 1')
262
262
  expect(node.left_value).to eq :@a
263
263
  end
264
+
265
+ it 'gets for or_asgn' do
266
+ node = parse('a ||= 1')
267
+ expect(node.left_value).to eq :a
268
+ end
264
269
  end
265
270
 
266
271
  describe '#right_value' do
@@ -283,6 +288,11 @@ describe Parser::AST::Node do
283
288
  node = parse('@a = 1')
284
289
  expect(node.right_value).to eq parse('1')
285
290
  end
291
+
292
+ it 'gets for or_asgn' do
293
+ node = parse('a ||= 1')
294
+ expect(node.right_value).to eq parse('1')
295
+ end
286
296
  end
287
297
 
288
298
  describe '#to_value' do
@@ -614,6 +624,20 @@ describe Parser::AST::Node do
614
624
  range = node.child_node_range(:arguments)
615
625
  expect(range).to be_nil
616
626
  end
627
+
628
+ it 'checks parentheses' do
629
+ node = parse('foo.bar(test)')
630
+ range = node.child_node_range(:parentheses)
631
+ expect(range.to_range).to eq(7...13)
632
+
633
+ node = parse('foobar(test)')
634
+ range = node.child_node_range(:parentheses)
635
+ expect(range.to_range).to eq(6...12)
636
+
637
+ node = parse('foo.bar')
638
+ range = node.child_node_range(:parentheses)
639
+ expect(range).to be_nil
640
+ end
617
641
  end
618
642
  end
619
643
 
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.42.1
4
+ version: 0.44.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: 2021-07-14 00:00:00.000000000 Z
11
+ date: 2021-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport