module ContentfulMiddleman::Helpers

Public Instance Methods

contentful_instances() click to toggle source
# File lib/contentful_middleman/helpers.rb, line 7
def contentful_instances
  ContentfulMiddleman.instances
end
localize(entry, field, locale, fallback_locale='en-US') click to toggle source
# File lib/contentful_middleman/helpers.rb, line 19
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
localize_array(value, locale, fallback_locale='en-US') click to toggle source
# File lib/contentful_middleman/helpers.rb, line 26
def localize_array(value, locale, fallback_locale='en-US')
  value.map do |v|
    localize_value(v, locale, fallback_locale)
  end
end
localize_entry(entry, locale, fallback_locale='en-US') click to toggle source
# File lib/contentful_middleman/helpers.rb, line 11
def localize_entry(entry, locale, fallback_locale='en-US')
  localized_entry = ::Thor::CoreExt::HashWithIndifferentAccess.new
  entry.each do |field, value|
    localized_entry[field] = localize(entry, field, locale, fallback_locale)
  end
  localized_entry
end
localize_value(value, locale, fallback_locale='en-US') click to toggle source
# File lib/contentful_middleman/helpers.rb, line 32
def localize_value(value, locale, fallback_locale='en-US')
  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
rich_text(document_field, instance_index = 0) click to toggle source
# File lib/contentful_middleman/helpers.rb, line 52
def rich_text(document_field, instance_index = 0)
  mappings = begin
               app.extensions[:contentful]["instance_#{instance_index}"].options[:rich_text_mappings] || {}
             rescue Exception
               {}
             end

  RichTextRenderer::Renderer.new(mappings).render(document_field)
end
with_preview(space: '', access_token: '', tries: 3, expires_in: ContentfulMiddleman::Tools::PreviewProxy.hours(2), &block) click to toggle source
# File lib/contentful_middleman/helpers.rb, line 41
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