synvert-core 0.27.2 → 0.27.3

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: afa25ca6412906c13399aa27967676033670bcbab36910a7bd528e3a9948e61d
4
- data.tar.gz: f5844fee19d2aec45fd24b50af95decb53b7b33c90e2c83fad4fb62d565d0782
3
+ metadata.gz: ddab57669b905a8064083e20672a292f78cce5a651331d9202e3fce12a34f776
4
+ data.tar.gz: d0d9dcb748214c6d0a35609a5cdcc2fdae44e112af7ed4ce15a8e22cc9d19919
5
5
  SHA512:
6
- metadata.gz: 2d188889dec4144d5508fc2ff3f9c6356703354cc1d37464a4d59fa406c56095fd1be796c5ffa474263bcb9a232f2ebbf48796de778fe80bbfe0a18137b7d048
7
- data.tar.gz: 85a83b35f0b9c60682d75647a63eff485eff55cf41e46e12b7849b00d098c1268e615eee9d363e3ce068c8c4239e05bc499a86cb73d4ba70d1c986366e2f96a0
6
+ metadata.gz: e1964409321d68628e1e73b24ed77f9c2e223dc9190fdfde722e2ab9e6be92b0be7802468dca245a34d5fba52f3a8778ca26f9299df095308b32cb2da80a3393
7
+ data.tar.gz: 42ed0ba17c74b57c3b1e0019d5f50ddf9bda0f5f1a3564b124ba2b0cf379b95b124e344113bdce8c53852fb911e9744725fa91ec3593943022636584ad6c17ff
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.27.3 (2021-03-31)
4
+
5
+ * Support `:def` in `child_node_range`
6
+ * Support `:defs` in `child_node_range`
7
+
3
8
  ## 0.27.2 (2021-03-31)
4
9
 
5
10
  * Fix selector with operator in `child_node_range`
@@ -330,6 +330,24 @@ module Parser::AST
330
330
  when :parent_class
331
331
  parent_class&.loc&.expression
332
332
  end
333
+ when :def
334
+ case child_name
335
+ when :name
336
+ loc.name
337
+ when :arguments
338
+ Parser::Source::Range.new('(string)', arguments.first.loc.expression.begin_pos, arguments.last.loc.expression.end_pos) unless arguments.empty?
339
+ end
340
+ when :defs
341
+ case child_name
342
+ when :dot
343
+ loc.operator
344
+ when :self
345
+ Parser::Source::Range.new('(string)', loc.operator.begin_pos - 4, loc.operator.begin_pos)
346
+ when :name
347
+ loc.name
348
+ when :arguments
349
+ Parser::Source::Range.new('(string)', arguments.first.loc.expression.begin_pos, arguments.last.loc.expression.end_pos) unless arguments.empty?
350
+ end
333
351
  when :send
334
352
  case child_name
335
353
  when :receiver
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '0.27.2'
5
+ VERSION = '0.27.3'
6
6
  end
7
7
  end
@@ -395,6 +395,64 @@ describe Parser::AST::Node do
395
395
  end
396
396
 
397
397
  describe '#child_node_range' do
398
+ context 'class node' do
399
+ it 'checks name' do
400
+ node = parse('class Post < ActiveRecord::Base; end')
401
+ range = node.child_node_range(:name)
402
+ expect(range.to_range).to eq(6...10)
403
+ end
404
+
405
+ it 'checks parent_class' do
406
+ node = parse('class Post < ActiveRecord::Base; end')
407
+ range = node.child_node_range(:parent_class)
408
+ expect(range.to_range).to eq(13...31)
409
+
410
+ node = parse('class Post; end')
411
+ range = node.child_node_range(:parent_class)
412
+ expect(range).to be_nil
413
+ end
414
+ end
415
+
416
+ context 'def node' do
417
+ it 'checks name' do
418
+ node = parse('def foo(bar); end')
419
+ range = node.child_node_range(:name)
420
+ expect(range.to_range).to eq(4...7)
421
+ end
422
+
423
+ it 'checks arguments' do
424
+ node = parse('def foo(bar); end')
425
+ range = node.child_node_range(:arguments)
426
+ expect(range.to_range).to eq(8...11)
427
+ end
428
+ end
429
+
430
+ context 'defs node' do
431
+ it 'checks self' do
432
+ node = parse('def self.foo(bar); end')
433
+ range = node.child_node_range(:self)
434
+ expect(range.to_range).to eq(4...8)
435
+ end
436
+
437
+ it 'checks dot' do
438
+ node = parse('def self.foo(bar); end')
439
+ range = node.child_node_range(:dot)
440
+ expect(range.to_range).to eq(8...9)
441
+ end
442
+
443
+ it 'checks name' do
444
+ node = parse('def self.foo(bar); end')
445
+ range = node.child_node_range(:name)
446
+ expect(range.to_range).to eq(9...12)
447
+ end
448
+
449
+ it 'checks arguments' do
450
+ node = parse('def self.foo(bar); end')
451
+ range = node.child_node_range(:arguments)
452
+ expect(range.to_range).to eq(13...16)
453
+ end
454
+ end
455
+
398
456
  context 'send node' do
399
457
  it 'checks receiver' do
400
458
  node = parse('foo.bar(test)')
@@ -444,24 +502,6 @@ describe Parser::AST::Node do
444
502
  expect(range).to be_nil
445
503
  end
446
504
  end
447
-
448
- context 'class node' do
449
- it 'checks name' do
450
- node = parse('class Post < ActiveRecord::Base; end')
451
- range = node.child_node_range(:name)
452
- expect(range.to_range).to eq(6...10)
453
- end
454
-
455
- it 'checks parent_class' do
456
- node = parse('class Post < ActiveRecord::Base; end')
457
- range = node.child_node_range(:parent_class)
458
- expect(range.to_range).to eq(13...31)
459
-
460
- node = parse('class Post; end')
461
- range = node.child_node_range(:parent_class)
462
- expect(range).to be_nil
463
- end
464
- end
465
505
  end
466
506
 
467
507
  describe '#rewritten_source' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synvert-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.2
4
+ version: 0.27.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang