Sha256: 8b72247cc177515a250653e0f52748d7df9122eb5cb0f650a9438d7eb7bba388

Contents?: true

Size: 1.54 KB

Versions: 19

Compression:

Stored size: 1.54 KB

Contents

module Cmor
  module Cms
    class PageResolver < ::ActionView::Resolver
      require 'singleton'
      include Singleton

      # add shared behaviour for database backed templates
      include Cmor::Cms::DatabaseResolver

      def build_source(record)
        output = ''
        record.content_blocks.each do |content_block|
          # rendered_body = RedCloth.new(begin;content_block.body;end).to_html.html_safe
          rendered_body = RedCloth.new(content_block.body).to_html
          output << "<% content_for :#{content_block.content_box_name} do %>#{rendered_body}<% end %>"
        end
        
        output << content_for_title(record)
        output << content_for_meta_description(record)
        
        output << record.body unless record.body.nil?

        output
      end

      def normalize_basename(basename)
        basename
      end

      def resolve(partial_flag)
        !partial_flag
      end

      def template_class
        'Cmor::Cms::Page'
      end

      private

      def content_for_title(record)
        case record.handler
        when 'haml'
          "= content_for(:title) { \"#{record.title}\" }\r\n"
        else
          "<% content_for :title do %>#{record.title}<% end %>"
        end
      end

      def content_for_meta_description(record)
        case record.handler
        when 'haml'
          "= content_for(:meta_description) { \"#{record.meta_description}\" }\r\n"
        else
          "<% content_for :meta_description do %>#{record.meta_description}<% end %>"
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
cmor_cms-0.0.60.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.59.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.58.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.57.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.56.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.55.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.54.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.53.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.52.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.51.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.50.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.49.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.48.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.45.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.44.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.43.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.42.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.41.pre app/resolvers/cmor/cms/page_resolver.rb
cmor_cms-0.0.40.pre app/resolvers/cmor/cms/page_resolver.rb