Module: ContentfulMiddleman::Helpers
- Included in:
- Core
- Defined in:
- lib/contentful_middleman/helpers.rb
Instance Method Summary collapse
- #contentful_instances ⇒ Object
- #localize(entry, field, locale, fallback_locale = 'en-US') ⇒ Object
- #localize_array(value, locale, fallback_locale = 'en-US') ⇒ Object
- #localize_entry(entry, locale, fallback_locale = 'en-US') ⇒ Object
- #localize_value(value, locale, fallback_locale = 'en-US') ⇒ Object
- #rich_text(document_field, instance_index = 0) ⇒ Object
- #with_preview(space: '', access_token: '', tries: 3, expires_in: ContentfulMiddleman::Tools::PreviewProxy.hours(2), &block) ⇒ Object
Instance Method Details
#contentful_instances ⇒ Object
7 8 9 |
# File 'lib/contentful_middleman/helpers.rb', line 7 def contentful_instances ContentfulMiddleman.instances end |
#localize(entry, field, locale, fallback_locale = 'en-US') ⇒ Object
19 20 21 22 23 24 |
# 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') ⇒ Object
26 27 28 29 30 |
# 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') ⇒ Object
11 12 13 14 15 16 17 |
# 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') ⇒ Object
32 33 34 35 36 37 38 39 |
# 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) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/contentful_middleman/helpers.rb', line 52 def rich_text(document_field, instance_index = 0) mappings = begin app.extensions[:contentful]["instance_#{instance_index}"].[: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) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# 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 |