node_mutation 1.23.0 → 1.23.2

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: 667309a875501329f61441ddc89143500b02d87e83be0a6aa324e78438cfd397
4
- data.tar.gz: 565be945f6bbfd0976dafb86bb346be696665bd32a72227cf9a4a2d16e75fa45
3
+ metadata.gz: 8428c48e2173db74d4ab6fca16ae15076106a021792ad2f24ff4e568a6d9af42
4
+ data.tar.gz: 4ffe5f7ebc5182b9a493bac7556a3ebe3bb140b435bad9df3529fc49b9e17315
5
5
  SHA512:
6
- metadata.gz: ed08dbed41c4aa8dce675995a19736ce84877fc0334ab448c04019c7e413204ee2e0c6674ea2d779048962bccbf970990d0b72f89fb7bc17845cb0034b6400ce
7
- data.tar.gz: 8488422fbcabd15c24c607c1a2b8229bf3a7be810a2d34f0568ceb79a82cc87ebdd06625ab0d76cf68099fd894a067267fc0dde257f5999aa48a8f0ef1c40346
6
+ metadata.gz: 85f90dbcb989220b83677298a8606f7ac33a1db5db5e3d71bab5753e48c62d2f3dd3b7a40fdda548cd6f9fc1a5fe24fc6d4b285f78ecc06b8a1e29145a282bfc
7
+ data.tar.gz: c8ff9b11d12b5bdf7d2b550a48e55539abed67880f7b5a410f118f342001847b476b57600628906fe69ee410b8aca73dc9161cac979b45a98ef1eb4a07bd52ed
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # NodeMutation
2
2
 
3
+ ## 1.23.2 (2024-02-17)
4
+
5
+ * Get prism node `source` without prism_ext
6
+
7
+ ## 1.23.1 (2024-02-16)
8
+
9
+ * Get `PrismAdapter`
10
+ * Get `CallNode#name` range
11
+
3
12
  ## 1.23.0 (2024-02-11)
4
13
 
5
14
  * Support `prism`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- node_mutation (1.23.0)
4
+ node_mutation (1.23.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -40,8 +40,8 @@ GEM
40
40
  parser_node_ext (1.2.2)
41
41
  parser
42
42
  prettier_print (1.2.1)
43
- prism (0.22.0)
44
- prism_ext (0.2.1)
43
+ prism (0.24.0)
44
+ prism_ext (0.2.3)
45
45
  prism
46
46
  pry (0.14.1)
47
47
  coderay (~> 1.1)
@@ -67,7 +67,7 @@ GEM
67
67
  shellany (0.0.1)
68
68
  syntax_tree (6.2.0)
69
69
  prettier_print (>= 1.2.0)
70
- syntax_tree_ext (0.6.3)
70
+ syntax_tree_ext (0.7.2)
71
71
  syntax_tree
72
72
  thor (1.2.1)
73
73
 
@@ -6,10 +6,10 @@ require 'prism_ext'
6
6
  class NodeMutation::PrismAdapter < NodeMutation::Adapter
7
7
  def get_source(node)
8
8
  if node.is_a?(Array)
9
- return node.first.source[node.first.location.start_offset...node.last.location.end_offset]
9
+ return node.first.instance_variable_get(:@source).source[node.first.location.start_offset...node.last.location.end_offset]
10
10
  end
11
11
 
12
- node.source[node.location.start_offset...node.location.end_offset]
12
+ node.to_source
13
13
  end
14
14
 
15
15
  # It gets the new source code after evaluating the node.
@@ -92,7 +92,7 @@ class NodeMutation::PrismAdapter < NodeMutation::Adapter
92
92
  end
93
93
 
94
94
  def file_source(node)
95
- node.source
95
+ node.instance_variable_get(:@source).source
96
96
  end
97
97
 
98
98
  # Get the range of the child node.
@@ -138,9 +138,9 @@ class NodeMutation::PrismAdapter < NodeMutation::Adapter
138
138
 
139
139
  if node.respond_to?("#{child_name}_loc")
140
140
  node_loc = node.send("#{child_name}_loc")
141
- if node_loc
142
- NodeMutation::Struct::Range.new(node_loc.start_offset, node_loc.end_offset)
143
- end
141
+ NodeMutation::Struct::Range.new(node_loc.start_offset, node_loc.end_offset) if node_loc
142
+ elsif node.is_a?(Prism::CallNode) && child_name.to_sym == :name
143
+ NodeMutation::Struct::Range.new(node.message_loc.start_offset, node.message_loc.end_offset)
144
144
  else
145
145
  raise NodeMutation::MethodNotSupported,
146
146
  "#{direct_child_name} is not supported for #{get_source(node)}" unless node.respond_to?(direct_child_name)
@@ -150,6 +150,7 @@ class NodeMutation::PrismAdapter < NodeMutation::Adapter
150
150
  return child_node_range(child_node, nested_child_name) if nested_child_name
151
151
 
152
152
  return nil if child_node.nil?
153
+ return nil if child_node == []
153
154
 
154
155
  if child_node.is_a?(Prism::Node)
155
156
  return(
@@ -152,6 +152,7 @@ class NodeMutation::SyntaxTreeAdapter < NodeMutation::Adapter
152
152
  return child_node_range(child_node, nested_child_name) if nested_child_name
153
153
 
154
154
  return nil if child_node.nil?
155
+ return nil if child_node == []
155
156
 
156
157
  if child_node.is_a?(SyntaxTree::Node)
157
158
  return(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation
4
- VERSION = "1.23.0"
4
+ VERSION = "1.23.2"
5
5
  end
data/lib/node_mutation.rb CHANGED
@@ -424,6 +424,8 @@ class NodeMutation
424
424
  ParserAdapter.new
425
425
  when :syntax_tree
426
426
  SyntaxTreeAdapter.new
427
+ when :prism
428
+ PrismAdapter.new
427
429
  else
428
430
  raise InvalidAdapterError, "adapter #{adapter} is not supported"
429
431
  end
@@ -1,18 +1,18 @@
1
1
  class NodeMutation::Struct
2
2
  class Action < ::Struct
3
- atr_accessor type (): Symbol
4
- atr_accessor start (): Integer
5
- atr_accessor end (): Integer
6
- atr_accessor new_code (): String
3
+ attr_accessor type (): Symbol
4
+ attr_accessor start (): Integer
5
+ attr_accessor end (): Integer
6
+ attr_accessor new_code (): String
7
7
  end
8
8
 
9
9
  class Location < ::Struct
10
- atr_accessor line (): Integer
11
- atr_accessor column (): Integer
10
+ attr_accessor line (): Integer
11
+ attr_accessor column (): Integer
12
12
  end
13
13
 
14
14
  class Range < ::Struct
15
- atr_accessor start (): Integer
16
- atr_accessor end (): Integer
15
+ attr_accessor start (): Integer
16
+ attr_accessor end (): Integer
17
17
  end
18
18
  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.23.0
4
+ version: 1.23.2
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-02-11 00:00:00.000000000 Z
11
+ date: 2024-02-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ast node mutation apis
14
14
  email: