lib/contentful_middleman/helpers.rb in contentful_middleman-2.1.1 vs lib/contentful_middleman/helpers.rb in contentful_middleman-2.1.2

- old
+ new

@@ -1,15 +1,16 @@ +require 'thor/core_ext/hash_with_indifferent_access' require 'contentful_middleman/tools/preview_proxy' module ContentfulMiddleman module Helpers def contentful_instances ContentfulMiddleman.instances end def localize_entry(entry, locale, fallback_locale='en-US') - localized_entry = {} + localized_entry = ::Thor::CoreExt::HashWithIndifferentAccess.new entry.each do |field, value| localized_entry[field] = localize(entry, field, locale, fallback_locale) end localized_entry end @@ -26,13 +27,14 @@ localize_value(v, locale, fallback_locale) end end def localize_value(value, locale, fallback_locale='en-US') - if value.respond_to? :fetch - return value.fetch(locale) if value.key? locale - return value.fetch(fallback_locale) if value.key? fallback_locale - end + value = value.fetch(locale) if value.respond_to?(:fetch) && value.respond_to?(:key?) && value.key?(locale) + value = value.fetch(fallback_locale) if value.respond_to?(:fetch) && value.respond_to?(:key?) && value.key?(fallback_locale) + + return localize_array(value, locale, fallback_locale) if value.is_a? ::Array + return localize_entry(value, locale, fallback_locale) if value.is_a? ::Hash value end def with_preview(space: '', access_token: '', tries: 3, expires_in: ContentfulMiddleman::Tools::PreviewProxy.hours(2), &block) preview_client = ContentfulMiddleman::Tools::PreviewProxy.instance(