Sha256: 1abfe7e65adf3a920c4bcdbb8cd1ee91b2dbc38fd329f1857e2e79b5f985c7d4

Contents?: true

Size: 1.39 KB

Versions: 9

Compression:

Stored size: 1.39 KB

Contents

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 = {}
      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

    def with_preview(space: '', access_token: '', tries: 3, expires_in: ContentfulMiddleman::Tools::PreviewProxy.hours(2), &block)
      preview_client = ContentfulMiddleman::Tools::PreviewProxy.instance(
        space: space,
        access_token: access_token,
        tries: tries,
        expires_in: expires_in
      )

      block.call(preview_client)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
contentful_middleman-2.1.0 lib/contentful_middleman/helpers.rb
contentful_middleman-2.0.1 lib/contentful_middleman/helpers.rb
contentful_middleman-2.0.0 lib/contentful_middleman/helpers.rb
contentful_middleman-1.5.0 lib/contentful_middleman/helpers.rb
contentful_middleman-1.4.2 lib/contentful_middleman/helpers.rb
contentful_middleman-1.4.1 lib/contentful_middleman/helpers.rb
contentful_middleman-1.4.0 lib/contentful_middleman/helpers.rb
contentful_middleman-1.3.2 lib/contentful_middleman/helpers.rb
contentful_middleman-1.3.1 lib/contentful_middleman/helpers.rb