Sha256: daf482fc6c208c240f5f2a2cd5c608c878af0a789319ba7ddb0fed8ce64c7d75

Contents?: true

Size: 1.78 KB

Versions: 16

Compression:

Stored size: 1.78 KB

Contents

module Kea
  module ApplicationHelper
    def body_id
      content_for?(:body_id) ? content_for(:body_id) : [body_class, params[:action]].join('-')
    end
    
    def body_class
      controller.class.to_s.gsub('Controller', '').underscore.dasherize.gsub('/', '-')
    end
    
    def json_for(target, options = {})
      options[:scope]       ||= self
      options[:url_options] ||= url_options
      
      serializer = options[:serializer] || target.active_model_serializer
      
      if target.is_a?(ActiveRecord::Relation)
        ActiveModel::ArraySerializer.new(target, each_serializer: serializer, scope: self).to_json
      else
        serializer.new(target, options).to_json
      end
    end

    def cache_json(object, path = nil, options = {})
      unless path
        path = polymorphic_path(object)
      end

      content = json_for(object, options)

      content_for :json_cache, "window.app.cache['#{path}'] = #{content};\n".html_safe
    end
    
    def knockout_template(name, partial: nil, &block)
      content_for :knockout_templates do
        if partial
          content_tag :script, type: "text/html", id: name do
            render partial: partial
          end
        else
          content_tag :script, type: "text/html", id: name do
            capture(&block)
          end
        end
      end
    end
    
    def overlay_template(name, partial: nil, &block)
      content_for :knockout_templates do
        if partial
          content_tag :script, type: "text/html", id: name, "data-bind" => "overlayTemplate: '#{name}'" do
            render partial: partial
          end
        else
          content_tag :script, type: "text/html", id: name, "data-bind" => "overlayTemplate: '#{name}'" do
            capture(&block)
          end
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
kea-rails-1.0.9 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha14 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha13 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha12 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha11 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha10 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha9 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha8 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha7 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha6 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha5 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha4 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha3 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha2 app/helpers/kea/application_helper.rb
kea-rails-1.0.8 app/helpers/kea/application_helper.rb
kea-rails-2.0.0.pre.alpha1 app/helpers/kea/application_helper.rb