node_mutation 1.24.0 → 1.24.1

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: 6083384501299b7550d7a91ddee8a643ebfa8ef1d167dd8b95687af79ddcbad4
4
- data.tar.gz: a1e8ac6f05d36650b5d012a3f5e1bc3adbd7b0a5fde2d2f7eb559bd2a5abea31
3
+ metadata.gz: 6e67a8d6feebbc0ca9e6dd85003a976250c3718e8dd6f7192ef0847b2cc1385f
4
+ data.tar.gz: c4b1d58061ac4661ac1eeb85303438f87d4ff563d8181a0fea8c8ac24e88dde3
5
5
  SHA512:
6
- metadata.gz: 6fa73367b5a8508bb4b7f5c5fc5831c00f3f1e6d36b9eef0b5cb87ea9814514317d61d0ae5c016b35459e1a232de0fc32a3b9f437c62642ac017d1d406e7f9bf
7
- data.tar.gz: 67d8d95f5f3877905b55ef4e5c30e193ed8f20d7f1516e93fd26552a5887eae4d3f29c4da85064f8c09844a6188899eb2af32e812e8f573f1c2d2cdf0c6d4cd4
6
+ metadata.gz: c99a8e8fce9fa6c610e93aeaa9aa5ad9fe89c5bb6cac19f216c34872c9bd57e2900d0b5e566a5f4e04c967f5383e8ace02d945cb94146602717b110a09ddbcb2
7
+ data.tar.gz: ff6f52635d513523c5bf8d617e7e277ee71166e8f0cbee60fe3a94ffe379062e687128cc3378c791940e211a863e8d9585cd07c9e26db95f98ff1a58455b3906
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # NodeMutation
2
2
 
3
+ ## 1.24.1 (2024-03-05)
4
+
5
+ * Adjust `start` and `end` position of `AppendAction` and `PrependAction`
6
+
3
7
  ## 1.24.0 (2024-03-03)
4
8
 
5
9
  * Remove `Adapter#get_indent`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- node_mutation (1.24.0)
4
+ node_mutation (1.24.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,13 +12,27 @@ class NodeMutation::AppendAction < NodeMutation::Action
12
12
  @type = :insert
13
13
  end
14
14
 
15
+ # The rewritten source code with proper indent.
16
+ #
17
+ # @return [String] rewritten code.
18
+ def new_code
19
+ if rewritten_source.split("\n").length > 1
20
+ "\n" + rewritten_source.split("\n").map { |line| indent(@node) + line }.join("\n") + "\n"
21
+ else
22
+ indent(@node) + rewritten_source + "\n"
23
+ end
24
+ end
25
+
15
26
  private
16
27
 
17
28
  END_LENGTH = "\nend".length
18
29
 
19
30
  # Calculate the begin the end positions.
20
31
  def calculate_position
21
- @start = @adapter.get_end(@node) - @adapter.get_start_loc(@node).column - END_LENGTH
32
+ node_end = @adapter.get_end(@node)
33
+ node_source = @adapter.get_source(@node)
34
+ last_line = node_source.split("\n").last
35
+ @start = node_end - last_line.length
22
36
  @end = @start
23
37
  end
24
38
 
@@ -12,6 +12,17 @@ class NodeMutation::PrependAction < NodeMutation::Action
12
12
  @type = :insert
13
13
  end
14
14
 
15
+ # The rewritten source code with proper indent.
16
+ #
17
+ # @return [String] rewritten code.
18
+ def new_code
19
+ if rewritten_source.split("\n").length > 1
20
+ "\n" + rewritten_source.split("\n").map { |line| indent(@node) + line }.join("\n") + "\n"
21
+ else
22
+ indent(@node) + rewritten_source + "\n"
23
+ end
24
+ end
25
+
15
26
  private
16
27
 
17
28
  # Calculate the begin and end positions.
@@ -19,7 +30,7 @@ class NodeMutation::PrependAction < NodeMutation::Action
19
30
  node_start = @adapter.get_start(@node)
20
31
  node_source = @adapter.get_source(@node)
21
32
  first_line = node_source.split("\n").first
22
- @start = first_line.end_with?("do") ? node_start + first_line.rindex("do") + "do".length : node_start + first_line.length
33
+ @start = node_start + first_line.length + "\n".length
23
34
  @end = @start
24
35
  end
25
36
 
@@ -31,18 +31,6 @@ class NodeMutation::Action
31
31
  self
32
32
  end
33
33
 
34
- # The rewritten source code with proper indent.
35
- #
36
- # @return [String] rewritten code.
37
- def new_code
38
- if rewritten_source.split("\n").length > 1
39
- "\n\n" + rewritten_source.split("\n").map { |line| indent(@node) + line }
40
- .join("\n")
41
- else
42
- "\n" + indent(@node) + rewritten_source
43
- end
44
- end
45
-
46
34
  def to_struct
47
35
  to_struct_actions = @actions ? @actions.map(&:to_struct) : nil
48
36
  NodeMutation::Struct::Action.new(@type, @start, @end, new_code, to_struct_actions)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation
4
- VERSION = "1.24.0"
4
+ VERSION = "1.24.1"
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.24.0
4
+ version: 1.24.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: 2024-03-03 00:00:00.000000000 Z
11
+ date: 2024-03-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ast node mutation apis
14
14
  email: