syntax_tree_ext 0.5.0 → 0.6.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: 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