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(