syntax_tree_ext 0.6.3 → 0.7.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: b42ee22694c4ab32ff3e2289e1cc6f15f96f577f1fe92f2c80d60b6cae0b819a
4
- data.tar.gz: 01fed35ee45496a496c3870dd6481d24a9b88c75cc6b2b68ae0b84dbe53ce9e9
3
+ metadata.gz: 97f2ba6521c0048eaaa6f65a4a17b4f34891b0eef53d968374f7e44bf4e75246
4
+ data.tar.gz: 27bd10410c6189066f89c6a94e7ce1b92d84a59be1598eba177ed2f0ee617818
5
5
  SHA512:
6
- metadata.gz: 899e1cf672ae9fb8a80cd604353e2dabcb3b314d4052d8fb4cd4d947ea39c0b64992f714c353f108d06b1c2977cd5c15cec633cdc9b93a96389bd527f551677f
7
- data.tar.gz: edf269d574720033fcb11a38c380902dcc364f42ebf3098684b7ba2dd5d8c546df2389593c2812600bfb3457f4f05756da0de87a71e683816871e75dfcf88341
6
+ metadata.gz: bb7aeb9a688f2d789e54087caf16a031b7f1caa8c9f553f5be17b3b086532456914c9c61f391e08860b9fd22496a2de07c3653a7d6430863cbd550321937176d
7
+ data.tar.gz: b52f466c32ca64172aaeb0b8ede41f4c93feef922b4f1d36ac24a522a844f21319eac8b025c85fc51e02054bd7464471830f19070bd8c0d5b50435427c482230
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.7.0 (2024-02-10)
4
+
5
+ * Remove `to_hash` extend
6
+ * Remove `siblings` method
7
+ * Hack `SyntaxTree.parse` instead of `SyntaxTree::Parser.parse`
8
+
9
+ ## 0.6.4 (2023-08-17)
10
+
11
+ * `to_value` supports for empty array
12
+
3
13
  ## 0.6.3 (2023-07-01)
4
14
 
5
15
  * Support `Hash#except` for ruby 2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syntax_tree_ext (0.6.3)
4
+ syntax_tree_ext (0.7.0)
5
5
  syntax_tree
6
6
 
7
7
  GEM
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SyntaxTreeExt
4
- VERSION = "0.6.3"
4
+ VERSION = "0.7.0"
5
5
  end
@@ -18,11 +18,11 @@ module SyntaxTreeExt
18
18
  end
19
19
 
20
20
  module SyntaxTree
21
- class Parser
21
+ class << self
22
22
  alias_method :original_parse, :parse
23
23
 
24
- def parse
25
- node = original_parse
24
+ def parse(source)
25
+ node = original_parse(source)
26
26
  node.set_parent_node_and_source(source)
27
27
  node
28
28
  end
@@ -50,17 +50,6 @@ module SyntaxTree
50
50
  end
51
51
  end
52
52
 
53
- def siblings
54
- child_nodes = parent_node.deconstruct_keys([]).except(:location, :comments).values
55
- if child_nodes.is_a?(Array) && child_nodes.size == 1 && child_nodes.first.is_a?(Array)
56
- index = child_nodes.first.index(self)
57
- return child_nodes.first[index + 1...]
58
- end
59
-
60
- index = child_nodes.index(self)
61
- child_nodes[index + 1...]
62
- end
63
-
64
53
  def keys
65
54
  if is_a?(BareAssocHash) || is_a?(HashLiteral)
66
55
  assocs.map(&:key)
@@ -110,7 +99,7 @@ module SyntaxTree
110
99
  when Const, Label, TStringContent, Ident
111
100
  value
112
101
  when ArrayLiteral
113
- contents.parts.map { |part| part.to_value }
102
+ contents ? contents.parts.map { |part| part.to_value } : []
114
103
  else
115
104
  self
116
105
  end
@@ -120,27 +109,6 @@ module SyntaxTree
120
109
  source[location.start_char...location.end_char]
121
110
  end
122
111
 
123
- # Convert node to a hash, so that it can be converted to a json.
124
- def to_hash
125
- result = { node_type: self.class.name.split('::').last }
126
- unless deconstruct_keys([]).empty?
127
- deconstruct_keys([]).each do |key, value|
128
- result[key] =
129
- case value
130
- when Array
131
- value.map { |v| v.respond_to?(:to_hash) ? v.to_hash : v }
132
- when SyntaxTree::Node, SyntaxTree::Location
133
- value.to_hash
134
- else
135
- value
136
- end
137
- end
138
- else
139
- result[:children] = children.map { |c| c.respond_to?(:to_hash) ? c.to_hash : c }
140
- end
141
- result
142
- end
143
-
144
112
  # Respond key value and source for hash node
145
113
  def method_missing(method_name, *args, &block)
146
114
  return super unless respond_to_assocs?
@@ -187,17 +155,4 @@ module SyntaxTree
187
155
  assoc_key.end_with?(':') ? assoc_key == "#{key}:" : assoc_key == key
188
156
  end
189
157
  end
190
-
191
- class Location
192
- def to_hash
193
- {
194
- start_line: start_line,
195
- start_char: start_char,
196
- start_column: start_column,
197
- end_line: end_line,
198
- end_char: end_char,
199
- end_column: end_column,
200
- }
201
- end
202
- end
203
158
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syntax_tree_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.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-06-30 00:00:00.000000000 Z
11
+ date: 2024-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: syntax_tree
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
- rubygems_version: 3.4.13
64
+ rubygems_version: 3.5.3
65
65
  signing_key:
66
66
  specification_version: 4
67
67
  summary: extend syntax_tree