Skip to content

Commit f62940d

Browse files
committed
Add back some debug statements to compaction.
1 parent d7c1879 commit f62940d

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

lib/json/ld/compact.rb

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ module Compact
1919
# @return [Array, Hash]
2020
def compact(element,
2121
base: nil,
22-
property: nil)
23-
#if property.nil?
24-
# log_debug("compact") {"element: #{element.inspect}, ec: #{context.inspect}"}
25-
#else
26-
# log_debug("compact") {"property: #{property.inspect}"}
27-
#end
22+
property: nil,
23+
log_depth: nil)
24+
log_debug("compact", depth: log_depth.to_i) {"element: #{element.inspect}, ec: #{context.inspect}"}
2825

2926
# If the term definition for active property itself contains a context, use that for compacting values.
3027
input_context = self.context
@@ -33,18 +30,18 @@ def compact(element,
3330
when Array
3431
#log_debug("") {"Array #{element.inspect}"}
3532
result = element.map do |item|
36-
compact(item, base: base, property: property)
33+
compact(item, base: base, property: property, log_depth: log_depth.to_i + 1)
3734
end.compact
3835

3936
# If element has a single member and the active property has no
4037
# @container mapping to @list or @set, the compacted value is that
4138
# member; otherwise the compacted value is element
4239
if result.length == 1 &&
4340
!context.as_array?(property) && @options[:compactArrays]
44-
#log_debug("=> extract single element: #{result.first.inspect}")
41+
log_debug("=> extract single element", depth: log_depth.to_i) {result.first.inspect}
4542
result.first
4643
else
47-
#log_debug("=> array result: #{result.inspect}")
44+
log_debug("=> array result", depth: log_depth.to_i) {result.inspect}
4845
result
4946
end
5047
when Hash
@@ -55,6 +52,7 @@ def compact(element,
5552

5653
# Revert any previously type-scoped (non-preserved) context
5754
if context.previous_context && !element.key?('@value') && element.keys != %w(@id)
55+
log_debug("revert ec", depth: log_depth.to_i) {"previous context: #{context.previous_context.inspect}"}
5856
self.context = context.previous_context
5957
end
6058

@@ -63,20 +61,22 @@ def compact(element,
6361
if td && !td.context.nil?
6462
self.context = context.parse(td.context,
6563
override_protected: true)
64+
log_debug("prop-scoped", depth: log_depth.to_i) {"context: #{self.context.inspect}"}
6665
end
6766

6867
if element.key?('@id') || element.key?('@value')
6968
result = context.compact_value(property, element, base: @options[:base])
7069
if !result.is_a?(Hash) || context.coerce(property) == '@json'
71-
#log_debug("") {"=> scalar result: #{result.inspect}"}
70+
log_debug("", depth: log_depth.to_i) {"=> scalar result: #{result.inspect}"}
7271
return result
7372
end
7473
end
7574

7675
# If expanded property is @list and we're contained within a list container, recursively compact this item to an array
7776
if list?(element) && context.container(property).include?('@list')
7877
return compact(element['@list'], base: base,
79-
property: property)
78+
property: property,
79+
log_depth: log_depth.to_i + 1)
8080
end
8181

8282
inside_reverse = property == '@reverse'
@@ -90,11 +90,12 @@ def compact(element,
9090
each do |term|
9191
term_context = input_context.term_definitions[term].context if input_context.term_definitions[term]
9292
self.context = context.parse(term_context, propagate: false) unless term_context.nil?
93+
log_debug("type-scoped", depth: log_depth.to_i) {"context: #{self.context.inspect}"}
9394
end
9495

9596
element.keys.opt_sort(ordered: @options[:ordered]).each do |expanded_property|
9697
expanded_value = element[expanded_property]
97-
#log_debug("") {"#{expanded_property}: #{expanded_value.inspect}"}
98+
log_debug("", depth: log_depth.to_i) {"#{expanded_property}: #{expanded_value.inspect}"}
9899

99100
if expanded_property == '@id'
100101
compacted_value = Array(expanded_value).map do |expanded_id|
@@ -124,8 +125,9 @@ def compact(element,
124125

125126
if expanded_property == '@reverse'
126127
compacted_value = compact(expanded_value, base: base,
127-
property: '@reverse')
128-
#log_debug("@reverse") {"compacted_value: #{compacted_value.inspect}"}
128+
property: '@reverse',
129+
log_depth: log_depth.to_i + 1)
130+
log_debug("@reverse", depth: log_depth.to_i) {"compacted_value: #{compacted_value.inspect}"}
129131
# handle double-reversed properties
130132
compacted_value.each do |prop, value|
131133
if context.reverse?(prop)
@@ -137,7 +139,7 @@ def compact(element,
137139

138140
unless compacted_value.empty?
139141
al = context.compact_iri('@reverse')
140-
#log_debug("") {"remainder: #{al} => #{compacted_value.inspect}"}
142+
log_debug("", depth: log_depth.to_i) {"remainder: #{al} => #{compacted_value.inspect}"}
141143
result[al] = compacted_value
142144
end
143145
next
@@ -146,8 +148,9 @@ def compact(element,
146148
if expanded_property == '@preserve'
147149
# Compact using `property`
148150
compacted_value = compact(expanded_value, base: base,
149-
property: property)
150-
#log_debug("@preserve") {"compacted_value: #{compacted_value.inspect}"}
151+
property: property,
152+
log_depth: log_depth.to_i + 1)
153+
log_debug("@preserve", depth: log_depth.to_i) {"compacted_value: #{compacted_value.inspect}"}
151154

152155
unless compacted_value.is_a?(Array) && compacted_value.empty?
153156
result['@preserve'] = compacted_value
@@ -156,14 +159,14 @@ def compact(element,
156159
end
157160

158161
if expanded_property == '@index' && context.container(property).include?('@index')
159-
#log_debug("@index") {"drop @index"}
162+
log_debug("@index", depth: log_depth.to_i) {"drop @index"}
160163
next
161164
end
162165

163166
# Otherwise, if expanded property is @direction, @index, @value, or @language:
164167
if EXPANDED_PROPERTY_DIRECTION_INDEX_LANGUAGE_VALUE.include?(expanded_property)
165168
al = context.compact_iri(expanded_property, vocab: true)
166-
#log_debug(expanded_property) {"#{al} => #{expanded_value.inspect}"}
169+
log_debug(expanded_property, depth: log_depth.to_i) {"#{al} => #{expanded_value.inspect}"}
167170
result[al] = expanded_value
168171
next
169172
end
@@ -211,8 +214,9 @@ def compact(element,
211214
end
212215

213216
compacted_item = compact(value, base: base,
214-
property: item_active_property)
215-
#log_debug("") {" => compacted key: #{item_active_property.inspect} for #{compacted_item.inspect}"}
217+
property: item_active_property,
218+
log_depth: log_depth.to_i + 1)
219+
log_debug("", depth: log_depth.to_i) {" => compacted key: #{item_active_property.inspect} for #{compacted_item.inspect}"}
216220

217221
# handle @list
218222
if list?(expanded_item)
@@ -315,7 +319,8 @@ def compact(element,
315319
if compacted_item.keys.length == 1 && expanded_item.keys.include?('@id')
316320
compacted_item = compact({'@id' => expanded_item['@id']},
317321
base: base,
318-
property: item_active_property)
322+
property: item_active_property,
323+
log_depth: log_depth.to_i + 1)
319324
end
320325
compacted_item
321326
end
@@ -332,7 +337,7 @@ def compact(element,
332337
result
333338
else
334339
# For other types, the compacted value is the element value
335-
#log_debug("compact") {element.class.to_s}
340+
log_debug("compact", depth: log_depth.to_i) {element.class.to_s}
336341
element
337342
end
338343

script/tc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ def compare_results(tc, result, expected)
4242
if !expected.equivalent_jsonld?(result)
4343
"failed"
4444
elsif result.to_s.include?('@context')
45-
exp_expected = JSON::LD::API.expand(expected, **tc.options)
46-
exp_result = JSON::LD::API.expand(result, **tc.options)
45+
exp_expected = JSON::LD::API.expand(expected, **tc.options.merge(logger: false))
46+
exp_result = JSON::LD::API.expand(result, **tc.options.merge(logger: false))
4747
exp_expected.equivalent_jsonld?(exp_result) ? "passed" : "failed"
4848
else
4949
"passed"

0 commit comments

Comments
 (0)