syntax_tree_ext 0.4.1 → 0.6.0

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: 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