Sha256: b6ffc6b1302aa02f4b64267940fd337542c37c2cab3a4edcc1b5c0ac68ba6833

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

require 'action_view/helpers'

module RenuoCmsRails
  module CmsHelper
    def cms(i18n_path, default_value = nil, &block)
      path = i18n_path.tr('.', '-')
      content_path = RenuoCmsRails.config.content_path_generator.call(path)
      cache = RenuoCmsRails::Cache.cache.get(content_path)
      default_translation = cache&.html_safe || capture_default_value(path, i18n_path, default_value, &block)
      content_tag(:div, default_translation, data: cms_attributes(content_path))
    end

    private

    # :reek:FeatureEnvy

    def cms_attributes(content_path)
      config = RenuoCmsRails.config
      cms_attributes = { content_path: content_path, api_host: config.api_host_with_protocol, api_key: config.api_key }
      cms_attributes[:private_api_key] = config.private_api_key if cms_admin?
      cms_attributes
    end

    def capture_default_value(_path, i18n_path, default_value)
      return default_value if default_value
      return capture { yield } if block_given?

      I18n.t(i18n_path)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
renuo-cms-rails-0.2.1 lib/renuo_cms_rails/cms_helper.rb
renuo-cms-rails-0.2.0 lib/renuo_cms_rails/cms_helper.rb