node_mutation 1.12.3 → 1.13.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 +9 -0
- data/Gemfile.lock +1 -3
- data/lib/node_mutation/action.rb +2 -2
- data/lib/node_mutation/adapter.rb +12 -8
- data/lib/node_mutation/parser_adapter.rb +8 -4
- data/lib/node_mutation/version.rb +1 -1
- data/node_mutation.gemspec +0 -3
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe41a31b811d16da282f8945f61004449dee3aedead1b7e8daabc864918d8a68
|
4
|
+
data.tar.gz: 5a7940724edbb66def2ec4bc0c355bbbeaa87a12eadeddf0c9647bab2efb3b3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b1fdbce0a2a34d0135199937e619b14e51b0b5e75ceaa2e8adb0fe3b044aa7f70abe0d8b954cd112437d7e52437727e4967f1b01b62b67aeff7c2711a66b8f3
|
7
|
+
data.tar.gz: be6a5cc15c2206ae661e33c47228610637bb0d2ee4db8a2e87606e3f9d34ca5fcaf4c83e7a94c9a5380915034a7d9d52a6c4a5b4a9cc93a1ea7040c09cbb8733
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# NodeMutation
|
2
2
|
|
3
|
+
## 1.13.1 (2023-03-31)
|
4
|
+
|
5
|
+
* Remove both whitespaces only when next char is nil
|
6
|
+
|
7
|
+
## 1.13.0 (2023-03-31)
|
8
|
+
|
9
|
+
* Adapter `get_start` and `get_end` can parse child node
|
10
|
+
* Adapter `get_start_loc` and `get_end_loc` can parse child node
|
11
|
+
|
3
12
|
## 1.12.3 (2023-03-30)
|
4
13
|
|
5
14
|
* `remove_whitespace` for both before and after whitespace
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
node_mutation (1.
|
5
|
-
erubis
|
4
|
+
node_mutation (1.13.1)
|
6
5
|
|
7
6
|
GEM
|
8
7
|
remote: https://rubygems.org/
|
@@ -10,7 +9,6 @@ GEM
|
|
10
9
|
ast (2.4.2)
|
11
10
|
coderay (1.1.3)
|
12
11
|
diff-lcs (1.5.0)
|
13
|
-
erubis (2.7.0)
|
14
12
|
ffi (1.15.5)
|
15
13
|
formatador (1.1.0)
|
16
14
|
guard (2.18.0)
|
data/lib/node_mutation/action.rb
CHANGED
@@ -57,9 +57,9 @@ class NodeMutation::Action
|
|
57
57
|
# e.g. `%i[foo bar]`, if we remove `foo`, the whitespace should also be removed,
|
58
58
|
# the code should be changed to `%i[bar]`.
|
59
59
|
def remove_whitespace
|
60
|
-
if file_source[@
|
60
|
+
if file_source[@start - 1] == ' ' && file_source[@end] == ' '
|
61
61
|
@start -= 1
|
62
|
-
@end += 1
|
62
|
+
@end += 1 if file_source[@end + 1].nil?
|
63
63
|
return
|
64
64
|
end
|
65
65
|
|
@@ -35,29 +35,33 @@ class NodeMutation::Adapter
|
|
35
35
|
|
36
36
|
# Get start position of ast node
|
37
37
|
# @param node [Node] ast node
|
38
|
-
# @
|
39
|
-
|
38
|
+
# @param child_name [String] child name selector
|
39
|
+
# @return [Number] start position of node or child node
|
40
|
+
def get_start(node, child_name = nil)
|
40
41
|
raise NotImplementedError, "get_start is not implemented"
|
41
42
|
end
|
42
43
|
|
43
44
|
# Get end position of ast node
|
44
45
|
# @param node [Node] ast node
|
45
|
-
# @
|
46
|
-
|
46
|
+
# @param child_name [String] child name selector
|
47
|
+
# @return [Number] end position of node or child node
|
48
|
+
def get_end(node, child_name = nil)
|
47
49
|
raise NotImplementedError, "get_end is not implemented"
|
48
50
|
end
|
49
51
|
|
50
52
|
# Get start location of ast node
|
51
53
|
# @param node [Node] ast node
|
52
|
-
# @
|
53
|
-
|
54
|
+
# @param child_name [String] child name selector
|
55
|
+
# @return [{ line: Number, column: Number }] start location of node or child node
|
56
|
+
def get_start_loc(node, child_name = nil)
|
54
57
|
raise NotImplementedError, "get_start_loc is not implemented"
|
55
58
|
end
|
56
59
|
|
57
60
|
# Get end location of ast node
|
58
61
|
# @param node [Node] ast node
|
59
|
-
# @
|
60
|
-
|
62
|
+
# @param child_name [String] child name selector
|
63
|
+
# @return [{ line: Number, column: Number }] end location of node or child node
|
64
|
+
def get_end_loc(node, child_name = nil)
|
61
65
|
raise NotImplementedError, "get_end_loc is not implemented"
|
62
66
|
end
|
63
67
|
|
@@ -145,20 +145,24 @@ class NodeMutation::ParserAdapter < NodeMutation::Adapter
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
-
def get_start(node)
|
148
|
+
def get_start(node, child_name = nil)
|
149
|
+
node = child_node_by_name(node, child_name) if child_name
|
149
150
|
node.loc.expression.begin_pos
|
150
151
|
end
|
151
152
|
|
152
|
-
def get_end(node)
|
153
|
+
def get_end(node, child_name = nil)
|
154
|
+
node = child_node_by_name(node, child_name) if child_name
|
153
155
|
node.loc.expression.end_pos
|
154
156
|
end
|
155
157
|
|
156
|
-
def get_start_loc(node)
|
158
|
+
def get_start_loc(node, child_name = nil)
|
159
|
+
node = child_node_by_name(node, child_name) if child_name
|
157
160
|
begin_loc = node.loc.expression.begin
|
158
161
|
NodeMutation::Struct::Location.new(begin_loc.line, begin_loc.column)
|
159
162
|
end
|
160
163
|
|
161
|
-
def get_end_loc(node)
|
164
|
+
def get_end_loc(node, child_name = nil)
|
165
|
+
node = child_node_by_name(node, child_name) if child_name
|
162
166
|
end_loc = node.loc.expression.end
|
163
167
|
NodeMutation::Struct::Location.new(end_loc.line, end_loc.column)
|
164
168
|
end
|
data/node_mutation.gemspec
CHANGED
@@ -29,9 +29,6 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
|
-
# Uncomment to register a new dependency of your gem
|
33
|
-
spec.add_dependency "erubis"
|
34
|
-
|
35
32
|
# For more information and examples about making a new gem, check out our
|
36
33
|
# guide at: https://bundler.io/guides/creating_gem.html
|
37
34
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: node_mutation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.13.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: 2023-03-
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: erubis
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
11
|
+
date: 2023-03-31 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
27
13
|
description: ast node mutation apis
|
28
14
|
email:
|
29
15
|
- flyerhzm@gmail.com
|