node_mutation 1.12.3 → 1.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c09d8d3b9a1b4185382f7117d766d6220d9f9cbe4851f86af6c99e32af2ba88
4
- data.tar.gz: e392926a8e647d85028c5d41c3890bea801f47dae425b885ff1892aaf8b396b2
3
+ metadata.gz: 4d8929809b3553b4b57c7f79ad54c83e3084da686b477ff082c18c43a2950042
4
+ data.tar.gz: bd72ffdee180460d73eda354fc1435b9c55f2c0156625264fd437a7f164912e7
5
5
  SHA512:
6
- metadata.gz: 6bb3a9d27929b69bba72947e39160163d671a7ac493d0b861057b1e08fd651e4bbcadc90f56d9b4ae8a7ee825aa1c207af7136f1b2afb11a7533b0c9898d211d
7
- data.tar.gz: '0943c3dfd903a6b9e789cfcb7289bbe2fed18f37a1176210ceff267233383c879813b67e3ff2e915e8c179f6144afe9c5ba5fb8baf3055845a93dd2885a58fce'
6
+ metadata.gz: 0ada057b589f14d161050ad80cdba1080c70e1102f041cd65e0a6f180cbb34d5e6a462d7d70abe41983da644b3853a46e7389f8adff14e5ae57f2e177bcbf551
7
+ data.tar.gz: '038bb2377ffcce14069cfcaccfe2a6d6d28728c80cef80d2e7c46da0e6d93f28f9c39dd0b3f690d7df1488962ad40f2ffe57d18018c5c115017e008757df6905'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # NodeMutation
2
2
 
3
+ ## 1.13.0 (2023-03-31)
4
+
5
+ * Adapter `get_start` and `get_end` can parse child node
6
+ * Adapter `get_start_loc` and `get_end_loc` can parse child node
7
+
3
8
  ## 1.12.3 (2023-03-30)
4
9
 
5
10
  * `remove_whitespace` for both before and after whitespace
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- node_mutation (1.12.3)
4
+ node_mutation (1.13.0)
5
5
  erubis
6
6
 
7
7
  GEM
@@ -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
- # @return [Number] start position
39
- def get_start(node)
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
- # @return [Number] end position
46
- def get_end(node)
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
- # @return [{ line: Number, column: Number }] start location
53
- def get_start_loc(node)
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
- # @return [{ line: Number, column: Number }] end location
60
- def get_end_loc(node)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation
4
- VERSION = "1.12.3"
4
+ VERSION = "1.13.0"
5
5
  end
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.12.3
4
+ version: 1.13.0
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-30 00:00:00.000000000 Z
11
+ date: 2023-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erubis