node_mutation 1.13.2 → 1.14.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 -0
- data/Gemfile.lock +1 -1
- data/lib/node_mutation/action.rb +3 -3
- data/lib/node_mutation/version.rb +1 -1
- data/lib/node_mutation.rb +8 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5f41eba8034d3565eeda68905e0d6f8efff2a5ad56f0523f3aca6e57b334239
|
4
|
+
data.tar.gz: eb115a375da1d2e17ca62df7089ae22b243fc94e273b1a37378cc8ff215be6e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0bb8b60c6c9a822a883c2219303ba39bc649adade357ea82074cea9c4da8f0a33b6305bd45dc3e8b094a420b7f450dbd90fab80b498331e87c1a5fed8c68404
|
7
|
+
data.tar.gz: 69eab44d9cc1282ce4c7afb09a3ea80573728562538cbe75fde02458d915c5f8479c87098171d4421e5d157fac92a85f8ecce8b8c61bf29bd63dd6fd44a6128d
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/lib/node_mutation/action.rb
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
# Action defines rewriter action, insert, replace or delete code.
|
4
4
|
class NodeMutation::Action
|
5
|
-
# @!attribute [
|
5
|
+
# @!attribute [rw] start
|
6
6
|
# @return [Integer] start position
|
7
|
-
# @!attribute [
|
7
|
+
# @!attribute [rw] end
|
8
8
|
# @return [Integer] end position
|
9
|
-
|
9
|
+
attr_accessor :start, :end
|
10
10
|
|
11
11
|
# Initialize an action.
|
12
12
|
#
|
data/lib/node_mutation.rb
CHANGED
@@ -22,8 +22,14 @@ class NodeMutation
|
|
22
22
|
autoload :Strategy, 'node_mutation/strategy'
|
23
23
|
autoload :Struct, 'node_mutation/struct'
|
24
24
|
|
25
|
+
# @!attribute [r] actions
|
26
|
+
# @return [Array<NodeMutation::Struct::Action>]
|
25
27
|
attr_reader :actions
|
26
28
|
|
29
|
+
# @!attribute [rw] transform_proc
|
30
|
+
# @return [Proc] proc to transfor the actions
|
31
|
+
attr_accessor :transform_proc
|
32
|
+
|
27
33
|
class << self
|
28
34
|
# Configure NodeMutation
|
29
35
|
# @param [Hash] options options to configure
|
@@ -219,6 +225,7 @@ class NodeMutation
|
|
219
225
|
end
|
220
226
|
|
221
227
|
source = +@source
|
228
|
+
@transform_proc.call(@actions) if @transform_proc
|
222
229
|
@actions.sort_by! { |action| [action.start, action.end] }
|
223
230
|
conflict_actions = get_conflict_actions
|
224
231
|
if conflict_actions.size > 0 && strategy?(Strategy::THROW_ERROR)
|
@@ -245,6 +252,7 @@ class NodeMutation
|
|
245
252
|
return NodeMutation::Result.new(affected: false, conflicted: false)
|
246
253
|
end
|
247
254
|
|
255
|
+
@transform_proc.call(@actions) if @transform_proc
|
248
256
|
@actions.sort_by! { |action| [action.start, action.end] }
|
249
257
|
conflict_actions = get_conflict_actions
|
250
258
|
if conflict_actions.size > 0 && strategy?(Strategy::THROW_ERROR)
|