syntax_tree_ext 0.4.1 → 0.6.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: f369f11506e5b0deee505fd45a2dc9528dcc949afbd3c251445976e74a5e1e34
4
- data.tar.gz: d7c8c612139042547ea4a3b94e4b22d09776763a9a1abaa1f55a16857b56a94c
3
+ metadata.gz: ce3e3738a614af69fd2ca73be682d1516281057cacbf1995445b07bab29f3020
4
+ data.tar.gz: f47da333553dcbf262cf53ae2685d999fda7a9a8800498b84b783ae0344e9365
5
5
  SHA512:
6
- metadata.gz: ba91207069dff6049b134b310065ba6443834bbc43e9e0f1a161ff16d8e3d20d781df00364e9633cd71e07d870827ccedd15fa0eecd32e7a02fd82d89daea180
7
- data.tar.gz: 054e6676cf631d02cc37f620d3bc5689463e38054217a972d0cd5108077ce8e852881e9b1995a3158eb4b9e930de3b3523ab757e0871f979df8bf95791765fb6
6
+ metadata.gz: dc2e4c15334228eccb81faa35fc93b3f068a5d0951e03f7e8ecaa352e0a76940b6af46fd2bdf6aa32d039d74515cd070aed220d61743b97ab0fa245967656e49
7
+ data.tar.gz: 9c454a2b46e308630496ae20baca6adcadd5a7f70b2b9401068f3b3e9cd9a516412145c5a593543759f45e1aae540bf13365a97609643a4848baabf03beb6098
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.6.0 (2024-06-12)
4
+
5
+ * Add `hash_assoc` and `hash_value` for hash
6
+
7
+ ## 0.5.0 (2023-06-12)
8
+
9
+ * Add `keys` and `values` for hash
10
+
3
11
  ## 0.4.1 (2023-06-11)
4
12
 
5
13
  * Support `const` for `to_value`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syntax_tree_ext (0.4.1)
4
+ syntax_tree_ext (0.6.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.4.1"
4
+ VERSION = "0.6.0"
5
5
  end
@@ -38,6 +38,38 @@ module SyntaxTree
38
38
  parent_node.child_nodes[index + 1...]
39
39
  end
40
40
 
41
+ def keys
42
+ if is_a?(BareAssocHash) || is_a?(HashLiteral)
43
+ assocs.map(&:key)
44
+ else
45
+ raise MethodNotSupported, "keys is not supported for #{self}"
46
+ end
47
+ end
48
+
49
+ def values
50
+ if is_a?(BareAssocHash) || is_a?(HashLiteral)
51
+ assocs.map(&:value)
52
+ else
53
+ raise MethodNotSupported, "values is not supported for #{self}"
54
+ end
55
+ end
56
+
57
+ def hash_assoc(key)
58
+ if is_a?(BareAssocHash) || is_a?(HashLiteral)
59
+ assocs.find { |assoc_node| assoc_node.key.to_value == key }
60
+ else
61
+ raise MethodNotSupported, "hash_assoc is not supported for #{self}"
62
+ end
63
+ end
64
+
65
+ def hash_value(key)
66
+ if is_a?(BareAssocHash) || is_a?(HashLiteral)
67
+ assocs.find { |assoc_node| assoc_node.key.to_value == key }&.value
68
+ else
69
+ raise MethodNotSupported, "hash_value is not supported for #{self}"
70
+ end
71
+ end
72
+
41
73
  def to_value
42
74
  case self
43
75
  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.4.1
4
+ version: 0.6.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-11 00:00:00.000000000 Z
11
+ date: 2023-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: syntax_tree