node_mutation 1.15.2 → 1.15.3

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: 3fadeda3c2cf8d3f0d618b4a9996241619ab404fef419e87026a443c8078e06f
4
- data.tar.gz: 39d9939b21c96821ce056ad1983b301d16fc1d49c936ce082e3b208a6a93547c
3
+ metadata.gz: e184fa98da9cbfac3645ec4e89ac2201cdbbfd958c511a03050443a66c79b322
4
+ data.tar.gz: 7c7693df11e9cd74df33d5ef6949bc800ab3a6c4367836c799b76073800586d5
5
5
  SHA512:
6
- metadata.gz: bdbfe2e830ef226679fa3556b52a23f67755afb2e33a7f8efaf5bd47e4f0e1d59f3b43af99bf4542587b2c9eee832a5309f0531689cc98cb954e38ca03bc0edc
7
- data.tar.gz: b9b9d033e38d84f4672cdb3630d44f8179af09ceb268b25d9e88fe3a86eff97d543f710d3f0c3ecbb3f8a2c22c45de2998a02b32b454dd2eff08d6d907ba4f4e
6
+ metadata.gz: 17c9a5065bb703331ccf1996bb3895ff833336b768aca74751c52b885c0651c9c4bb19b989d026aa39b10cdf03b61ab43ddf3e5e1fe742aa837527b8e680279e
7
+ data.tar.gz: ba34afa52b6dacf07f5a9b736a31e2b1ad0c37e3a0717690d302f1a1e91ab366705d7ac840a903ada796d182731731823a7cf438e3d1de6c07ee1fcdb2ae5861
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # NodeMutation
2
2
 
3
+ ## 1.15.3 (2023-04-18)
4
+
5
+ * Add `type` to `Action`
6
+
3
7
  ## 1.15.2 (2023-04-17)
4
8
 
5
9
  * Support `const` `double_colon` in child_node_range
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- node_mutation (1.15.2)
4
+ node_mutation (1.15.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -2,6 +2,11 @@
2
2
 
3
3
  # AppendAction appends code to the bottom of node body.
4
4
  class NodeMutation::AppendAction < NodeMutation::Action
5
+ def initialize(node, code)
6
+ super(node, code)
7
+ @type = :insert
8
+ end
9
+
5
10
  private
6
11
 
7
12
  END_LENGTH = "\nend".length
@@ -11,6 +11,7 @@ class NodeMutation::DeleteAction < NodeMutation::Action
11
11
  super(node, nil)
12
12
  @selectors = selectors
13
13
  @and_comma = and_comma
14
+ @type = :delete
14
15
  end
15
16
 
16
17
  # The rewritten code, always empty string.
@@ -9,6 +9,7 @@ class NodeMutation::IndentAction < NodeMutation::Action
9
9
  def initialize(node, tab_size = 1)
10
10
  super(node, nil)
11
11
  @tab_size = tab_size
12
+ @type = :replace
12
13
  end
13
14
 
14
15
  # The rewritten source code with proper indent.
@@ -14,6 +14,7 @@ class NodeMutation::InsertAction < NodeMutation::Action
14
14
  @at = at
15
15
  @to = to
16
16
  @and_comma = and_comma
17
+ @type = :insert
17
18
  end
18
19
 
19
20
  # The rewritten source code.
@@ -2,6 +2,11 @@
2
2
 
3
3
  # PrependAction to prepend code to the top of node body.
4
4
  class NodeMutation::PrependAction < NodeMutation::Action
5
+ def initialize(node, code)
6
+ super(node, code)
7
+ @type = :insert
8
+ end
9
+
5
10
  private
6
11
 
7
12
  DO_LENGTH = ' do'.length
@@ -10,6 +10,7 @@ class NodeMutation::RemoveAction < NodeMutation::Action
10
10
  def initialize(node, and_comma: false)
11
11
  super(node, nil)
12
12
  @and_comma = and_comma
13
+ @type = :delete
13
14
  end
14
15
 
15
16
  # The rewritten code, always empty string.
@@ -10,6 +10,7 @@ class NodeMutation::ReplaceAction < NodeMutation::Action
10
10
  def initialize(node, *selectors, with:)
11
11
  super(node, with)
12
12
  @selectors = selectors
13
+ @type = :replace
13
14
  end
14
15
 
15
16
  # The rewritten source code.
@@ -2,6 +2,11 @@
2
2
 
3
3
  # ReplaceWithAction to replace code.
4
4
  class NodeMutation::ReplaceWithAction < NodeMutation::Action
5
+ def initialize(node, code)
6
+ super(node, code)
7
+ @type = :replace
8
+ end
9
+
5
10
  # The rewritten source code with proper indent.
6
11
  #
7
12
  # @return [String] rewritten code.
@@ -6,7 +6,9 @@ class NodeMutation::Action
6
6
  # @return [Integer] start position
7
7
  # @!attribute [rw] end
8
8
  # @return [Integer] end position
9
- attr_accessor :start, :end
9
+ # @!attribute [rw] type
10
+ # @return [Symbol] action type, :insert, :replace or :delete
11
+ attr_accessor :start, :end, :type
10
12
 
11
13
  # Initialize an action.
12
14
  #
@@ -19,7 +19,7 @@ class NodeMutation::Result
19
19
  end
20
20
 
21
21
  def actions=(actions)
22
- @actions = actions.map { |action| NodeMutation::Struct::Action.new(action.start, action.end, action.new_code) }
22
+ @actions = actions.map { |action| NodeMutation::Struct::Action.new(action.type, action.start, action.end, action.new_code) }
23
23
  end
24
24
 
25
25
  def to_json(*args)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation::Struct
4
- Action = Struct.new(:start, :end, :new_code)
4
+ Action = Struct.new(:type, :start, :end, :new_code)
5
5
  Location = Struct.new(:line, :column)
6
6
  Range = Struct.new(:start, :end)
7
7
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation
4
- VERSION = "1.15.2"
4
+ VERSION = "1.15.3"
5
5
  end
@@ -1,5 +1,6 @@
1
1
  class NodeMutation::Struct
2
2
  class Action < ::Struct
3
+ prop :type, Symbol
3
4
  prop :start, Integer
4
5
  prop :end, Integer
5
6
  prop :new_code, String
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.15.2
4
+ version: 1.15.3
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-04-17 00:00:00.000000000 Z
11
+ date: 2023-04-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ast node mutation apis
14
14
  email: