lib/wcc/contentful/link_visitor.rb in wcc-contentful-1.3.2 vs lib/wcc/contentful/link_visitor.rb in wcc-contentful-1.4.0.rc1
- old
+ new
@@ -81,10 +81,11 @@
# it's a locale=* entry, but they've added sys.locale to those now
raw_value = raw_value[locale]
end
yield(raw_value, locale)
else
+ # yield each locale in turn
raw_value&.each_with_object({}) do |(l, val), h|
h[l] = yield(val, l)
end
end
end
@@ -103,11 +104,21 @@
def should_walk_link?(_field, val, dep = depth)
dep > 0 && val.is_a?(Hash) && val.dig('sys', 'type') == 'Entry'
end
def set_field(field, locale, index, val)
- current_field = (entry['fields'][field] ||= {})
+ # default entry
+ if locale == entry.dig('sys', 'locale')
+ if index.nil?
+ entry['fields'][field] = val
+ else
+ (entry['fields'][field] ||= [])[index] = val
+ end
+ return
+ end
+ # locale=* entry
+ current_field = (entry['fields'][field] ||= {})
if index.nil?
current_field[locale] = val
else
(current_field[locale] ||= [])[index] = val
end