node_mutation 1.24.0 → 1.24.1

Sign up to get free protection for your applications and to get access to all the features.
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: