Sha256: 89770ae3daf44f5eacca3b396ebeff3c5dc27c61e868996a229b881a142eb9bc

Contents?: true

Size: 1001 Bytes

Versions: 1

Compression:

Stored size: 1001 Bytes

Contents

module ContentfulMiddleman
  module Helpers
    def contentful_instances
      ContentfulMiddleman.instances
    end

    def localize_entry(entry, locale, fallback_locale='en-US')
      localized_entry = {}
      entry.each do |field, value|
        localized_entry[field] = localize(entry, field, locale, fallback_locale)
      end
      localized_entry
    end

    def localize(entry, field, locale, fallback_locale='en-US')
      value = entry.fetch(field)

      return localize_array(value, locale, fallback_locale) if value.is_a? ::Array
      localize_value(value, locale, fallback_locale)
    end

    def localize_array(value, locale, fallback_locale='en-US')
      value.map do |v|
        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)
      end
      value
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contentful_middleman-1.2.0 lib/contentful_middleman/helpers.rb