synvert-core 0.61.2 → 0.62.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -7
- data/lib/synvert/core/node_ext.rb +7 -7
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/node_ext_spec.rb +59 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e6217815771ca45d3fc81030b42ae126252ab800e127518e72c2f2b4dd2eb5c
|
4
|
+
data.tar.gz: 266cc5cda364f6df8100a290d393f879075b433acfd7ee70c780b37d23a83292
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89c3f93da22298305839c57fadb4963ea0973e16de10b2d2260c76e63927d25c302bbcd2c74515e79adeb24d2440ecba53025aaeeab0b173c6176adccb5d0875
|
7
|
+
data.tar.gz: df7a75da7a8bbecee35d4cc1afb862f6aa0184e96d484a6f207a88510dfac70098ea17cca794aefaac0938e37e96d8a91f7ba21738f2f116554238f02344e4c1
|
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
## 0.
|
3
|
+
## 0.62.0 (2021-12-24)
|
4
4
|
|
5
|
-
*
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
* Fix prepend action for def and defs nodes
|
10
|
-
* Fix append action for def and defs nodes
|
5
|
+
* Support `csend` node
|
6
|
+
* Restrict `activesupport` version to `~> 6`
|
7
|
+
* Fix `prepend` action for `def` and `defs` nodes
|
8
|
+
* Fix `append` action for `def` and `defs` nodes
|
11
9
|
|
12
10
|
## 0.61.0 (2021-12-10)
|
13
11
|
|
@@ -49,7 +49,7 @@ module Parser::AST
|
|
49
49
|
# @return [Parser::AST::Node] receiver node.
|
50
50
|
# @raise [Synvert::Core::MethodNotSupported] if calls on other node.
|
51
51
|
def receiver
|
52
|
-
if
|
52
|
+
if %i[csend send].include?(type)
|
53
53
|
children[0]
|
54
54
|
else
|
55
55
|
raise Synvert::Core::MethodNotSupported, "receiver is not handled for #{debug_info}"
|
@@ -64,7 +64,7 @@ module Parser::AST
|
|
64
64
|
case type
|
65
65
|
when :super, :zsuper
|
66
66
|
:super
|
67
|
-
when :send
|
67
|
+
when :send, :csend
|
68
68
|
children[1]
|
69
69
|
else
|
70
70
|
raise Synvert::Core::MethodNotSupported, "message is not handled for #{debug_info}"
|
@@ -81,7 +81,7 @@ module Parser::AST
|
|
81
81
|
children[1]
|
82
82
|
when :defs
|
83
83
|
children[2]
|
84
|
-
when :send
|
84
|
+
when :send, :csend
|
85
85
|
children[2..-1]
|
86
86
|
when :defined?
|
87
87
|
children
|
@@ -400,15 +400,15 @@ module Parser::AST
|
|
400
400
|
loc.operator
|
401
401
|
when %i[defs self]
|
402
402
|
Parser::Source::Range.new('(string)', loc.operator.begin_pos - 'self'.length, loc.operator.begin_pos)
|
403
|
-
when %i[send dot]
|
403
|
+
when %i[send dot], %i[csend dot]
|
404
404
|
loc.dot
|
405
|
-
when %i[send message]
|
405
|
+
when %i[send message], %i[csend message]
|
406
406
|
if loc.operator
|
407
407
|
Parser::Source::Range.new('(string)', loc.selector.begin_pos, loc.operator.end_pos)
|
408
408
|
else
|
409
409
|
loc.selector
|
410
410
|
end
|
411
|
-
when %i[send parentheses]
|
411
|
+
when %i[send parentheses], %i[csend parentheses]
|
412
412
|
if loc.begin && loc.end
|
413
413
|
Parser::Source::Range.new('(string)', loc.begin.begin_pos, loc.end.end_pos)
|
414
414
|
end
|
@@ -593,7 +593,7 @@ module Parser::AST
|
|
593
593
|
def to_string
|
594
594
|
return to_source unless type == :sym
|
595
595
|
|
596
|
-
|
596
|
+
to_value.to_s
|
597
597
|
end
|
598
598
|
|
599
599
|
# convert lambda {} to -> {}
|
data/lib/synvert/core/version.rb
CHANGED
@@ -80,6 +80,11 @@ describe Parser::AST::Node do
|
|
80
80
|
node = parse('FactoryGirl.create :post')
|
81
81
|
expect(node.receiver).to eq parse('FactoryGirl')
|
82
82
|
end
|
83
|
+
|
84
|
+
it 'gets for csend node' do
|
85
|
+
node = parse('user&.update(name: name)')
|
86
|
+
expect(node.receiver).to eq parse('user')
|
87
|
+
end
|
83
88
|
end
|
84
89
|
|
85
90
|
describe '#message' do
|
@@ -88,6 +93,11 @@ describe Parser::AST::Node do
|
|
88
93
|
expect(node.message).to eq :create
|
89
94
|
end
|
90
95
|
|
96
|
+
it 'gets for csend node' do
|
97
|
+
node = parse('user&.update(name: name)')
|
98
|
+
expect(node.message).to eq :update
|
99
|
+
end
|
100
|
+
|
91
101
|
it 'gets for super node' do
|
92
102
|
node = parse('super(params)')
|
93
103
|
expect(node.message).to eq :super
|
@@ -137,6 +147,11 @@ describe Parser::AST::Node do
|
|
137
147
|
expect(node.arguments).to eq parse("[:post, title: 'post']").children
|
138
148
|
end
|
139
149
|
|
150
|
+
it 'gets for csend node' do
|
151
|
+
node = parse('user&.update(name: name)')
|
152
|
+
expect(node.arguments).to eq parse('[name: name]').children
|
153
|
+
end
|
154
|
+
|
140
155
|
it 'gets for defined? node' do
|
141
156
|
node = parse('defined?(Bundler)')
|
142
157
|
expect(node.arguments).to eq [parse('Bundler')]
|
@@ -653,6 +668,50 @@ describe Parser::AST::Node do
|
|
653
668
|
end
|
654
669
|
end
|
655
670
|
|
671
|
+
context 'csend node' do
|
672
|
+
it 'checks receiver' do
|
673
|
+
node = parse('foo&.bar(test)')
|
674
|
+
range = node.child_node_range(:receiver)
|
675
|
+
expect(range.to_range).to eq(0...3)
|
676
|
+
end
|
677
|
+
|
678
|
+
it 'checks dot' do
|
679
|
+
node = parse('foo&.bar(test)')
|
680
|
+
range = node.child_node_range(:dot)
|
681
|
+
expect(range.to_range).to eq(3...5)
|
682
|
+
end
|
683
|
+
|
684
|
+
it 'checks message' do
|
685
|
+
node = parse('foo&.bar(test)')
|
686
|
+
range = node.child_node_range(:message)
|
687
|
+
expect(range.to_range).to eq(5...8)
|
688
|
+
|
689
|
+
node = parse('foo&.bar = test')
|
690
|
+
range = node.child_node_range(:message)
|
691
|
+
expect(range.to_range).to eq(5...10)
|
692
|
+
end
|
693
|
+
|
694
|
+
it 'checks arguments' do
|
695
|
+
node = parse('foo&.bar(test)')
|
696
|
+
range = node.child_node_range(:arguments)
|
697
|
+
expect(range.to_range).to eq(9...13)
|
698
|
+
|
699
|
+
node = parse('foo&.bar')
|
700
|
+
range = node.child_node_range(:arguments)
|
701
|
+
expect(range).to be_nil
|
702
|
+
end
|
703
|
+
|
704
|
+
it 'checks parentheses' do
|
705
|
+
node = parse('foo&.bar(test)')
|
706
|
+
range = node.child_node_range(:parentheses)
|
707
|
+
expect(range.to_range).to eq(8...14)
|
708
|
+
|
709
|
+
node = parse('foo&.bar')
|
710
|
+
range = node.child_node_range(:parentheses)
|
711
|
+
expect(range).to be_nil
|
712
|
+
end
|
713
|
+
end
|
714
|
+
|
656
715
|
context 'def node' do
|
657
716
|
it 'checks name' do
|
658
717
|
node = parse('def foo(bar); end')
|
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.
|
4
|
+
version: 0.62.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-12-
|
11
|
+
date: 2021-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
218
|
- !ruby/object:Gem::Version
|
219
219
|
version: '0'
|
220
220
|
requirements: []
|
221
|
-
rubygems_version: 3.2.
|
221
|
+
rubygems_version: 3.2.22
|
222
222
|
signing_key:
|
223
223
|
specification_version: 4
|
224
224
|
summary: convert ruby code to better syntax.
|