Module: ContentfulMiddleman::Helpers
- 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
- #with_preview(space: '', access_token: '', tries: 3, expires_in: ContentfulMiddleman::Tools::PreviewProxy.hours(2), &block) ⇒ Object
Instance Method Details
#contentful_instances ⇒ Object
6 7 8 |
# File 'lib/contentful_middleman/helpers.rb', line 6 def contentful_instances ContentfulMiddleman.instances end |
#localize(entry, field, locale, fallback_locale = 'en-US') ⇒ Object
18 19 20 21 22 23 |
# File 'lib/contentful_middleman/helpers.rb', line 18 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
25 26 27 28 29 |
# File 'lib/contentful_middleman/helpers.rb', line 25 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
10 11 12 13 14 15 16 |
# File 'lib/contentful_middleman/helpers.rb', line 10 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
31 32 33 34 35 36 37 38 |
# File 'lib/contentful_middleman/helpers.rb', line 31 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 |
#with_preview(space: '', access_token: '', tries: 3, expires_in: ContentfulMiddleman::Tools::PreviewProxy.hours(2), &block) ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/contentful_middleman/helpers.rb', line 40 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 |