prism_ext 0.3.0 → 0.3.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: 9dc2a569a5d46086c7979bf6dd2b6af03b766ba78a7d3909873e568bcf22baa9
4
- data.tar.gz: 40a740a9bf6b7f3bd0920a5fc1af08cd27ff0ccaf5e88e172ef2757a690d5f19
3
+ metadata.gz: 2a730b25cf7eca0bd6d027a947247134045862ca80282ed5480a18715c8383ae
4
+ data.tar.gz: 70e2168d438071f2ad30532d2d98f0a5f85fee95df1f7feaaf3459c05271eaf1
5
5
  SHA512:
6
- metadata.gz: 3a8aa09f730f28d6faf50be52288d3c85f16ab3e724befc09221fd5ff89185c6b086c069324643a46b93e9650a503411433e994c336a33885e59df5e54bd9396
7
- data.tar.gz: 27920f2028fa75a70c74a2240d9794c9346d960e22af211e83b76c1cb7ee1ee840c2011e6d0852dbb4af620a9015b9c239218fc2a9f611873ca2a41e7398c7e7
6
+ metadata.gz: 75316468628f563b3d68ee0e061dad459d49e2358e44143bfeb861634d55abcfa734c90726293e76b93bbb79b69b72cef8c21567fb4e48fc49206beba324fa73
7
+ data.tar.gz: 0064e27e308ac3d63e69ea55e7f38510895a9588f1fb5c9b34fe762fcb255679238147fba040e7aef5bbdebb49315fa0ab2f3d1bc274f58370a35921258dae2b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.3.1 (2024-04-12)
4
+
5
+ * Skip `AssocSplatNode` for hash helper methods
6
+
3
7
  ## 0.3.0 (2024-04-07)
4
8
 
5
9
  * Abstract `prism_ext/parent_node_ext`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- prism_ext (0.3.0)
4
+ prism_ext (0.3.1)
5
5
  prism
6
6
 
7
7
  GEM
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PrismExt
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
data/lib/prism_ext.rb CHANGED
@@ -12,32 +12,32 @@ end
12
12
  module Prism
13
13
  module HashNodeExt
14
14
  def keys
15
- elements.map(&:key)
15
+ elements.select { |element| element.type == :assoc_node }.map(&:key)
16
16
  end
17
17
 
18
18
  def values
19
- elements.map(&:value)
19
+ elements.select { |element| element.type == :assoc_node }.map(&:value)
20
20
  end
21
21
 
22
22
  def hash_element(key)
23
- elements.find { |element_node| element_node.key.to_value == key }
23
+ elements.find { |element| element.type == :assoc_node && element.key.to_value == key }
24
24
  end
25
25
 
26
26
  def hash_value(key)
27
- elements.find { |element_node| element_node.key.to_value == key }&.value
27
+ elements.find { |element| element.type == :assoc_node && element.key.to_value == key }&.value
28
28
  end
29
29
 
30
30
  # Respond key value and source for hash node
31
31
  def method_missing(method_name, *args, &block)
32
32
  if method_name.to_s.end_with?('_element')
33
33
  key = method_name.to_s[0..-9]
34
- return elements.find { |element| element.key.to_value.to_s == key }
34
+ return elements.find { |element| element.type == :assoc_node && element.key.to_value.to_s == key }
35
35
  elsif method_name.to_s.end_with?('_value')
36
36
  key = method_name.to_s[0..-7]
37
- return elements.find { |element| element.key.to_value.to_s == key }&.value
37
+ return elements.find { |element| element.type == :assoc_node && element.key.to_value.to_s == key }&.value
38
38
  elsif method_name.to_s.end_with?('_source')
39
39
  key = method_name.to_s[0..-8]
40
- return elements.find { |element| element.key.to_value.to_s == key }&.value&.to_source || ''
40
+ return elements.find { |element| element.type == :assoc_node && element.key.to_value.to_s == key }&.value&.to_source || ''
41
41
  end
42
42
 
43
43
  super
@@ -46,13 +46,13 @@ module Prism
46
46
  def respond_to_missing?(method_name, *args)
47
47
  if method_name.to_s.end_with?('_element')
48
48
  key = method_name.to_s[0..-9]
49
- return !!elements.find { |element| element.key.to_value.to_s == key }
49
+ return !!elements.find { |element| element.type == :assoc_node && element.key.to_value.to_s == key }
50
50
  elsif method_name.to_s.end_with?('_value')
51
51
  key = method_name.to_s[0..-7]
52
- return !!elements.find { |element| element.key.to_value.to_s == key }
52
+ return !!elements.find { |element| element.type == :assoc_node && element.key.to_value.to_s == key }
53
53
  elsif method_name.to_s.end_with?('_source')
54
54
  key = method_name.to_s[0..-8]
55
- return !!elements.find { |element| element.key.to_value.to_s == key }
55
+ return !!elements.find { |element| element.type == :assoc_node && element.key.to_value.to_s == key }
56
56
  end
57
57
 
58
58
  super
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prism_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.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: 2024-04-07 00:00:00.000000000 Z
11
+ date: 2024-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prism