prism_ext 0.2.0 → 0.2.2
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/lib/prism_ext/version.rb +1 -1
- data/lib/prism_ext.rb +12 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5fbb378a9c09790397fcdda6460841dda3ee4a743f3fae4d19e6309b2239539
|
4
|
+
data.tar.gz: d52081d91e7b7f133f3fd5241e14168765d0fbbe8cfeafb686dc79adbc285a4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c9d6e3142e5ffbabe9c6ef8432e1ce58d1ae779ff8af732ed734cbd46e367b4816e7c5f816dc03cbc504e41b3299d9bad977f8a1127728bc7b34086cc4bcb21
|
7
|
+
data.tar.gz: cc2f194f4e933b1110ddd6f6795c02cb5b50515ec106cc61b77d0051afa077f6a49f7794c3d827a9078e2af50892742a701a9910313ade8ae20a0701cd29df7e
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/lib/prism_ext/version.rb
CHANGED
data/lib/prism_ext.rb
CHANGED
@@ -46,7 +46,7 @@ module Prism
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def keys
|
49
|
-
if
|
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
|
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
|
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
|
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
|
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
|
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.
|
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-
|
11
|
+
date: 2024-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prism
|