prism_ext 0.2.0 → 0.2.2

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: 695e9d8152060370e01e3f95624c4008015551a06ccd12c283e85e7a1bb59f11
4
- data.tar.gz: a94e3ff7e5e9befb6500f44dc6b25b9c360e28f1356b6e17532842ffa58a7cae
3
+ metadata.gz: c5fbb378a9c09790397fcdda6460841dda3ee4a743f3fae4d19e6309b2239539
4
+ data.tar.gz: d52081d91e7b7f133f3fd5241e14168765d0fbbe8cfeafb686dc79adbc285a4a
5
5
  SHA512:
6
- metadata.gz: 04ec3cb586628e36ab5ec8ff22e9d8f20e5e9d17b2fae2291bb921fb81e679fa7ba28b3984d4a7064c22025d9bc93bf3665f0d248fb57cb15cbe60894e5b817a
7
- data.tar.gz: c5a4534721f7a4d36737f77dcf901c0db0d90506bb94ee30dae9b247b89ce1a73303baa69428bc1a14ef15e10e2e88a0a8d3335adfa404bac4ca9784dd08b676
6
+ metadata.gz: 6c9d6e3142e5ffbabe9c6ef8432e1ce58d1ae779ff8af732ed734cbd46e367b4816e7c5f816dc03cbc504e41b3299d9bad977f8a1127728bc7b34086cc4bcb21
7
+ data.tar.gz: cc2f194f4e933b1110ddd6f6795c02cb5b50515ec106cc61b77d0051afa077f6a49f7794c3d827a9078e2af50892742a701a9910313ade8ae20a0701cd29df7e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.2.2 (2024-02-11)
4
+
5
+ * Reuse `respond_to_elements?`
6
+
7
+ ## 0.2.1 (2024-02-11)
8
+
9
+ * Check both `HashNode` and `KeywordHashNode`.
10
+
3
11
  ## 0.2.0 (2024-02-10)
4
12
 
5
13
  * Set `parent_node` to `Prism::Node`.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- prism_ext (0.2.0)
4
+ prism_ext (0.2.2)
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.2.0"
4
+ VERSION = "0.2.2"
5
5
  end
data/lib/prism_ext.rb CHANGED
@@ -46,7 +46,7 @@ module Prism
46
46
  end
47
47
 
48
48
  def keys
49
- if is_a?(HashNode)
49
+ if respond_to_elements?
50
50
  elements.map(&:key)
51
51
  else
52
52
  raise MethodNotSupported, "keys is not supported for #{self}"
@@ -54,7 +54,7 @@ module Prism
54
54
  end
55
55
 
56
56
  def values
57
- if is_a?(HashNode)
57
+ if respond_to_elements?
58
58
  elements.map(&:value)
59
59
  else
60
60
  raise MethodNotSupported, "values is not supported for #{self}"
@@ -62,7 +62,7 @@ module Prism
62
62
  end
63
63
 
64
64
  def hash_element(key)
65
- if is_a?(HashNode)
65
+ if respond_to_elements?
66
66
  elements.find { |element_node| element_node.key.to_value == key }
67
67
  else
68
68
  raise MethodNotSupported, "hash_pair is not supported for #{self}"
@@ -70,7 +70,7 @@ module Prism
70
70
  end
71
71
 
72
72
  def hash_value(key)
73
- if is_a?(HashNode)
73
+ if respond_to_elements?
74
74
  elements.find { |element_node| element_node.key.to_value == key }&.value
75
75
  else
76
76
  raise MethodNotSupported, "hash_value is not supported for #{self}"
@@ -104,7 +104,7 @@ module Prism
104
104
 
105
105
  # Respond key value and source for hash node
106
106
  def method_missing(method_name, *args, &block)
107
- return super unless is_a?(HashNode)
107
+ return super unless respond_to_elements?
108
108
 
109
109
  if method_name.to_s.end_with?('_element')
110
110
  key = method_name.to_s[0..-9]
@@ -121,7 +121,7 @@ module Prism
121
121
  end
122
122
 
123
123
  def respond_to_missing?(method_name, *args)
124
- return super unless is_a?(HashNode)
124
+ return super unless respond_to_elements?
125
125
 
126
126
  if method_name.to_s.end_with?('_element')
127
127
  key = method_name.to_s[0..-9]
@@ -136,5 +136,11 @@ module Prism
136
136
 
137
137
  super
138
138
  end
139
+
140
+ private
141
+
142
+ def respond_to_elements?
143
+ is_a?(HashNode) || is_a?(KeywordHashNode)
144
+ end
139
145
  end
140
146
  end
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.2.0
4
+ version: 0.2.2
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-02-10 00:00:00.000000000 Z
11
+ date: 2024-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prism