synvert-core 0.26.1 → 0.27.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 +4 -4
- data/CHANGELOG.md +2 -1
- data/lib/synvert/core/node_ext.rb +2 -0
- data/lib/synvert/core/rewriter.rb +1 -0
- data/lib/synvert/core/rewriter/action/delete_action.rb +30 -0
- data/lib/synvert/core/rewriter/instance.rb +6 -1
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/node_ext_spec.rb +10 -0
- data/spec/synvert/core/rewriter/action/delete_action_spec.rb +26 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49f00515f034212fb244c270b4d9815e51e5a4d2eb1e91c1cd8c3ddc402fca28
|
4
|
+
data.tar.gz: 8de939c1e2834259e1aa8af2b17e540221a5e7d0d3f936ad526081db408e994f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12236d2c862b82798e3865755394362e50773ff27505b1ddf08e7308dd51ca0a791b604e8e3cafd768e8d3b957c76bb18ff5d5bd8daded14eef0e2a788c51c36
|
7
|
+
data.tar.gz: 42b67fd980a096a5d8bffe78ba023c47b18bca34ac3957a631da16bd722b979e8cb9523eaf97e8ca42b870091e4ec81922b866ff8359325f0144766cb9ceb3db
|
data/CHANGELOG.md
CHANGED
@@ -24,6 +24,7 @@ module Synvert::Core
|
|
24
24
|
autoload :ReplaceAction, 'synvert/core/rewriter/action/replace_action'
|
25
25
|
autoload :ReplaceErbStmtWithExprAction, 'synvert/core/rewriter/action/replace_erb_stmt_with_expr_action'
|
26
26
|
autoload :RemoveAction, 'synvert/core/rewriter/action/remove_action'
|
27
|
+
autoload :DeleteAction, 'synvert/core/rewriter/action/delete_action'
|
27
28
|
|
28
29
|
autoload :Warning, 'synvert/core/rewriter/warning'
|
29
30
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Synvert::Core
|
4
|
+
# RemoveAction to delete code.
|
5
|
+
class Rewriter::DeleteAction < Rewriter::Action
|
6
|
+
def initialize(instance, *selectors)
|
7
|
+
super(instance, nil)
|
8
|
+
@selectors = selectors
|
9
|
+
end
|
10
|
+
|
11
|
+
# Begin position of code to replace.
|
12
|
+
#
|
13
|
+
# @return [Integer] begin position.
|
14
|
+
def begin_pos
|
15
|
+
@selectors.map { |selector| @node.child_node_range(selector).begin_pos }.min
|
16
|
+
end
|
17
|
+
|
18
|
+
# End position of code to replace.
|
19
|
+
#
|
20
|
+
# @return [Integer] end position.
|
21
|
+
def end_pos
|
22
|
+
@selectors.map { |selector| @node.child_node_range(selector).end_pos }.max
|
23
|
+
end
|
24
|
+
|
25
|
+
# The rewritten code, always empty string.
|
26
|
+
def rewritten_code
|
27
|
+
''
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -266,11 +266,16 @@ module Synvert::Core
|
|
266
266
|
@actions << Rewriter::ReplaceErbStmtWithExprAction.new(self)
|
267
267
|
end
|
268
268
|
|
269
|
-
# Parse remove dsl, it creates a [Synvert::Core::Rewriter::RemoveAction] to current node.
|
269
|
+
# Parse remove dsl, it creates a [Synvert::Core::Rewriter::RemoveAction] to remove current node.
|
270
270
|
def remove
|
271
271
|
@actions << Rewriter::RemoveAction.new(self)
|
272
272
|
end
|
273
273
|
|
274
|
+
# Parse delete dsl, it creates a [Synvert::Core::Rewriter::DeleteAction] to delete child nodes.
|
275
|
+
def delete
|
276
|
+
@actions << Rewriter::DeleteAction.new(self, *selectors)
|
277
|
+
end
|
278
|
+
|
274
279
|
# Parse warn dsl, it creates a [Synvert::Core::Rewriter::Warning] to save warning message.
|
275
280
|
#
|
276
281
|
# @param message [String] warning message.
|
data/lib/synvert/core/version.rb
CHANGED
@@ -406,6 +406,16 @@ describe Parser::AST::Node do
|
|
406
406
|
expect(range).to be_nil
|
407
407
|
end
|
408
408
|
|
409
|
+
it 'checks dot' do
|
410
|
+
node = parse('foo.bar(test)')
|
411
|
+
range = node.child_node_range(:dot)
|
412
|
+
expect(range.to_range).to eq(3...4)
|
413
|
+
|
414
|
+
node = parse('foobar(test)')
|
415
|
+
range = node.child_node_range(:dot)
|
416
|
+
expect(range).to be_nil
|
417
|
+
end
|
418
|
+
|
409
419
|
it 'checks message' do
|
410
420
|
node = parse('foo.bar(test)')
|
411
421
|
range = node.child_node_range(:message)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
module Synvert::Core
|
6
|
+
describe Rewriter::DeleteAction do
|
7
|
+
subject {
|
8
|
+
source = "arr.map {}.flatten"
|
9
|
+
node = Parser::CurrentRuby.parse(source)
|
10
|
+
instance = double(current_node: node)
|
11
|
+
Rewriter::DeleteAction.new(instance, :dot, :message)
|
12
|
+
}
|
13
|
+
|
14
|
+
it 'gets begin_pos' do
|
15
|
+
expect(subject.begin_pos).to eq "arr.map {}".length
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'gets end_pos' do
|
19
|
+
expect(subject.end_pos).to eq "arr.map {}.flatten".length
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'gets rewritten_code' do
|
23
|
+
expect(subject.rewritten_code).to eq ''
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
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.
|
4
|
+
version: 0.27.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
@@ -147,6 +147,7 @@ files:
|
|
147
147
|
- lib/synvert/core/rewriter.rb
|
148
148
|
- lib/synvert/core/rewriter/action.rb
|
149
149
|
- lib/synvert/core/rewriter/action/append_action.rb
|
150
|
+
- lib/synvert/core/rewriter/action/delete_action.rb
|
150
151
|
- lib/synvert/core/rewriter/action/insert_action.rb
|
151
152
|
- lib/synvert/core/rewriter/action/insert_after_action.rb
|
152
153
|
- lib/synvert/core/rewriter/action/remove_action.rb
|
@@ -171,6 +172,7 @@ files:
|
|
171
172
|
- spec/synvert/core/engine/erb_spec.rb
|
172
173
|
- spec/synvert/core/node_ext_spec.rb
|
173
174
|
- spec/synvert/core/rewriter/action/append_action_spec.rb
|
175
|
+
- spec/synvert/core/rewriter/action/delete_action_spec.rb
|
174
176
|
- spec/synvert/core/rewriter/action/insert_action_spec.rb
|
175
177
|
- spec/synvert/core/rewriter/action/insert_after_action_spec.rb
|
176
178
|
- spec/synvert/core/rewriter/action/remove_action_spec.rb
|
@@ -221,6 +223,7 @@ test_files:
|
|
221
223
|
- spec/synvert/core/engine/erb_spec.rb
|
222
224
|
- spec/synvert/core/node_ext_spec.rb
|
223
225
|
- spec/synvert/core/rewriter/action/append_action_spec.rb
|
226
|
+
- spec/synvert/core/rewriter/action/delete_action_spec.rb
|
224
227
|
- spec/synvert/core/rewriter/action/insert_action_spec.rb
|
225
228
|
- spec/synvert/core/rewriter/action/insert_after_action_spec.rb
|
226
229
|
- spec/synvert/core/rewriter/action/remove_action_spec.rb
|