node_mutation 1.3.3 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/README.md +2 -0
- data/lib/node_mutation/action/noop_action.rb +24 -0
- data/lib/node_mutation/version.rb +1 -1
- data/lib/node_mutation.rb +7 -0
- data/sig/node_mutation.rbs +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c039ce434de2c9f04450657464f649b1005851b3beaacc83be674833a0756ffa
|
4
|
+
data.tar.gz: e2e64db507b3099dc2f8709b0c6eb5f0cfb990ad1f5c2061eab8666212306a3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff18089505355b7527c220ce0ed22ba84f7bef3e4789deb656a9dfe49b962c984e313bc1ade369bcf6ba01006ff2dd102f38e319a06b77a38522fecc5b2dba22
|
7
|
+
data.tar.gz: 8feb7df10f01fffa63af2b913f129a95c55ba81af0446aaeea6a1282e1c1f1ee6648f812acce635b09cf2905def86227c42dbc92bc0b8e80fa7f54cc5e04530b
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -49,6 +49,8 @@ mutation.replace node, :message, with: 'test'
|
|
49
49
|
mutation.replace_with node, 'create {{arguments}}'
|
50
50
|
# wrap node within a block, class or module
|
51
51
|
mutation.wrap node, with: 'module Foo'
|
52
|
+
# no operation
|
53
|
+
mutation.noop
|
52
54
|
```
|
53
55
|
|
54
56
|
3. process actions and write the new source code to file:
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# NoopAction to do no operation.
|
4
|
+
class NodeMutation::NoopAction < NodeMutation::Action
|
5
|
+
# Create a NoopAction
|
6
|
+
def initialize(node)
|
7
|
+
super(node, nil)
|
8
|
+
end
|
9
|
+
|
10
|
+
# The rewritten source code with proper indent.
|
11
|
+
#
|
12
|
+
# @return [String] rewritten code.
|
13
|
+
def new_code
|
14
|
+
return nil
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
# Calculate the begin the end positions.
|
20
|
+
def calculate_position
|
21
|
+
@start = NodeMutation.adapter.get_start(@node)
|
22
|
+
@end = NodeMutation.adapter.get_end(@node)
|
23
|
+
end
|
24
|
+
end
|
data/lib/node_mutation.rb
CHANGED
@@ -24,6 +24,7 @@ class NodeMutation
|
|
24
24
|
autoload :ReplaceAction, 'node_mutation/action/replace_action'
|
25
25
|
autoload :ReplaceWithAction, 'node_mutation/action/replace_with_action'
|
26
26
|
autoload :WrapAction, 'node_mutation/action/wrap_action'
|
27
|
+
autoload :NoopAction, 'node_mutation/action/noop_action'
|
27
28
|
autoload :Result, 'node_mutation/result'
|
28
29
|
|
29
30
|
attr_reader :actions
|
@@ -207,6 +208,12 @@ class NodeMutation
|
|
207
208
|
@actions << WrapAction.new(node, with: with).process
|
208
209
|
end
|
209
210
|
|
211
|
+
# No operation.
|
212
|
+
# @param node [Node] ast node
|
213
|
+
def noop(node)
|
214
|
+
@actions << NoopAction.new(node).process
|
215
|
+
end
|
216
|
+
|
210
217
|
# Process actions and return the new source.
|
211
218
|
#
|
212
219
|
# If there's an action range conflict,
|
data/sig/node_mutation.rbs
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: node_mutation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -59,6 +59,7 @@ files:
|
|
59
59
|
- lib/node_mutation/action/delete_action.rb
|
60
60
|
- lib/node_mutation/action/insert_action.rb
|
61
61
|
- lib/node_mutation/action/insert_after_action.rb
|
62
|
+
- lib/node_mutation/action/noop_action.rb
|
62
63
|
- lib/node_mutation/action/prepend_action.rb
|
63
64
|
- lib/node_mutation/action/remove_action.rb
|
64
65
|
- lib/node_mutation/action/replace_action.rb
|