Skip to content

Commit 9b753b5

Browse files
committed
Only rename a blank node if it is the value of @id.
1 parent 7f66e4e commit 9b753b5

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

lib/json/ld/flatten.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,12 +198,13 @@ def create_node_map(element, graph_map,
198198
# @return [Hash]
199199
def rename_bnodes(node)
200200
case node
201-
when String
202-
blank_node?(node) ? namer.get_name(node) : node
203201
when Array
204202
node.map {|n| rename_bnodes(n)}
205203
when Hash
206-
node.inject({}) {|memo, (k, v)| memo.merge(k => rename_bnodes(v))}
204+
node.inject({}) do |memo, (k, v)|
205+
v = namer.get_name(v) if k == '@id' && v.is_a?(String) && blank_node?(v)
206+
memo.merge(k => rename_bnodes(v))
207+
end
207208
else
208209
node
209210
end

spec/suite_frame_spec.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@
1111

1212
specify "#{t.property('@id')}: #{t.name} unordered#{' (negative test)' unless t.positiveTest?}" do
1313
t.options[:ordered] = false
14-
if %w(#t0021 #tp021).include?(t.property('@id'))
15-
pending("changes due to blank node reordering")
16-
end
1714
expect {t.run self}.not_to write.to(:error)
1815
end
1916

2017
# Skip ordered tests when remapping bnodes
2118
next if t.options[:remap_bnodes]
2219
specify "#{t.property('@id')}: #{t.name} ordered#{' (negative test)' unless t.positiveTest?}" do
2320
t.options[:ordered] = true
24-
if %w(#t0021 #tp021).include?(t.property('@id'))
21+
if %w(#tp021).include?(t.property('@id'))
2522
pending("changes due to blank node reordering")
2623
end
2724
expect {t.run self}.not_to write.to(:error)

0 commit comments

Comments
 (0)