Skip to content

Commit b5df59c

Browse files
committed
Fix uses of .keys.reject, .keys.select, .keys.inject.
1 parent 969dad3 commit b5df59c

File tree

4 files changed

+21
-18
lines changed

4 files changed

+21
-18
lines changed

lib/json/ld/expand.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,9 @@ def expand(input, active_property, context, ordered: true)
4444
output_object = {}
4545

4646
# See if keys mapping to @type have terms with a local context
47-
input.keys.select do |key|
48-
context.expand_iri(key, vocab: true) == '@type'
49-
end.each do |key|
50-
Array(input[key]).each do |term|
47+
input.each_pair do |key, val|
48+
next unless context.expand_iri(key, vocab: true) == '@type'
49+
Array(val).each do |term|
5150
term_context = context.term_definitions[term].context if context.term_definitions[term]
5251
context = term_context ? context.parse(term_context) : context
5352
end
@@ -303,7 +302,7 @@ def expand_object(input, active_property, context, output_object, ordered: false
303302
end
304303

305304
# If expanded value contains members other than @reverse:
306-
unless value.keys.reject {|k| k == '@reverse'}.empty?
305+
if !value.key?('@reverse') || value.length > 1
307306
# If result does not have an @reverse member, create one and set its value to an empty JSON object.
308307
reverse_map = output_object['@reverse'] ||= {}
309308
value.each do |property, items|

lib/json/ld/frame.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,11 @@ def add_frame_output(parent, property, output)
490490
# @param [Hash] flags the current framing flags.
491491
# @return [Array<Hash>] the implicit frame.
492492
def create_implicit_frame(flags)
493-
flags.keys.inject({}) {|memo, key| memo["@#{key}"] = [flags[key]]; memo}
493+
{}.tap do |memo|
494+
flags.each_pair do |key, val|
495+
memo["@#{key}"] = [val]
496+
end
497+
end
494498
end
495499

496500
private

lib/json/ld/resource.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -110,19 +110,19 @@ def hash
110110
# @return [Hash] deresolved attribute hash
111111
def deresolve
112112
node_definition = if resolved?
113-
deresolved = attributes.keys.inject({}) do |memo, prop|
114-
value = attributes[prop]
115-
memo[prop] = case value
116-
when Resource
117-
{'id' => value.id}
118-
when Array
119-
value.map do |v|
120-
v.is_a?(Resource) ? {'id' => v.id} : v
113+
deresolved = [].tap do |memo|
114+
attributes.each_pair do |prop, value|
115+
memo[prop] = case value
116+
when Resource
117+
{'id' => value.id}
118+
when Array
119+
value.map do |v|
120+
v.is_a?(Resource) ? {'id' => v.id} : v
121+
end
122+
else
123+
value
121124
end
122-
else
123-
value
124125
end
125-
memo
126126
end
127127
deresolved
128128
else

lib/json/ld/utils.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def node?(value)
2020
# @param [Object] value
2121
# @return [Boolean]
2222
def node_reference?(value)
23-
value.is_a?(Hash) && value.keys == %w(@id)
23+
value.is_a?(Hash) && value.length == 1 && value.key?('@id')
2424
end
2525

2626
##

0 commit comments

Comments
 (0)