syntax_tree_ext 0.5.0 → 0.6.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: f9580df1305b4def597a9e270f05b42f5f8bc5704f433c4a0e5356591f0de7e5
4
- data.tar.gz: b0264ef9b6a63c83918ef57dc38062da7fcf09e688fc756be3f21c15b4e64501
3
+ metadata.gz: e788bebfcb80e34a61554c7a7b0ed608f08ab62859be1c3e104229c1641ca119
4
+ data.tar.gz: f37569d6b395df1263253e90ae3a014c8d5f404141f6c097e54e427c6d9f53df
5
5
  SHA512:
6
- metadata.gz: 22f20003979d6dd4ed263098327362f932944e59b5278b7c68ed7261a2465dfbfd14fd617ab04c474358564de0ba44ebc4ce11475dad84fe673842afb679de26
7
- data.tar.gz: e36f96c71b3359547c1bac1e15e8bcfa4ce724ac82d6f0a8b8750208e546af9bb7bf92a3b38459c40195299429bfebaf8040eddda1fe17b5cb1dcf7a23939553
6
+ metadata.gz: f9519fc61d292216b946f2df7abebb91d9d71b5201530fe96ac583f15df333e84f44fa9418b1013fa10b40914087c36065aca14e1cf73816f071d68e5e8120f1
7
+ data.tar.gz: defd5612e73938662ff0272c3a2fb544dcb31eb29ae16e1a7b7f44f96f7d8d5ae253a7261734605f9ac12f5faa3d04f7a851fd53d7312fc1f4e843ce997b6fd0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.6.1 (2024-06-26)
4
+
5
+ * Use `deconstruct_key`.`values` instead of `child_nodes`
6
+
7
+ ## 0.6.0 (2024-06-12)
8
+
9
+ * Add `hash_assoc` and `hash_value` for hash
10
+
3
11
  ## 0.5.0 (2023-06-12)
4
12
 
5
13
  * Add `keys` and `values` for hash
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syntax_tree_ext (0.5.0)
4
+ syntax_tree_ext (0.6.1)
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.5.0"
4
+ VERSION = "0.6.1"
5
5
  end
@@ -25,7 +25,7 @@ module SyntaxTree
25
25
 
26
26
  def set_parent_node_and_source(source)
27
27
  self.source = source
28
- child_nodes.each do |child_node|
28
+ self.deconstruct_keys([]).except(:location, :comments).values.flatten.each do |child_node|
29
29
  next unless child_node.is_a?(Node)
30
30
 
31
31
  child_node.parent_node = self
@@ -34,8 +34,9 @@ module SyntaxTree
34
34
  end
35
35
 
36
36
  def siblings
37
- index = parent_node.child_nodes.index(self)
38
- parent_node.child_nodes[index + 1...]
37
+ child_nodes = parent_node.deconstruct_keys([]).except(:location, :comments).values.flatten
38
+ index = child_nodes.index(self)
39
+ child_nodes[index + 1...]
39
40
  end
40
41
 
41
42
  def keys
@@ -54,6 +55,22 @@ module SyntaxTree
54
55
  end
55
56
  end
56
57
 
58
+ def hash_assoc(key)
59
+ if is_a?(BareAssocHash) || is_a?(HashLiteral)
60
+ assocs.find { |assoc_node| assoc_node.key.to_value == key }
61
+ else
62
+ raise MethodNotSupported, "hash_assoc is not supported for #{self}"
63
+ end
64
+ end
65
+
66
+ def hash_value(key)
67
+ if is_a?(BareAssocHash) || is_a?(HashLiteral)
68
+ assocs.find { |assoc_node| assoc_node.key.to_value == key }&.value
69
+ else
70
+ raise MethodNotSupported, "hash_value is not supported for #{self}"
71
+ end
72
+ end
73
+
57
74
  def to_value
58
75
  case self
59
76
  when SymbolLiteral
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.5.0
4
+ version: 0.6.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: 2023-06-12 00:00:00.000000000 Z
11
+ date: 2023-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: syntax_tree