synvert-core 0.27.2 → 0.27.3

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
  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