Sha256: fcc7ef71d20230c1b7a95f5facbce0da144a2d5813255685b1ee4230ea3bbff1

Contents?: true

Size: 1.78 KB

Versions: 4

Compression:

Stored size: 1.78 KB

Contents

require 'ostruct'
require 'abstract_controller'
require 'action_view'
require 'action_dispatch/http/mime_type'
require 'action_dispatch/routing'

module Lurker
  class RenderingController < ::AbstractController::Base
    # Include all the concerns we need to make this work
    include AbstractController::Logger
    include AbstractController::Helpers
    include AbstractController::Rendering
    include AbstractController::AssetPaths
    include AbstractController::Layouts if defined?(AbstractController::Layouts) # Rails 3.2.x, 4.0.x
    include ActionView::Layouts if defined?(ActionView::Layouts) # Rails 4.1.x
    include ActionView::Rendering if defined?(ActionView::Rendering)
    include ActionView::Context

    attr_writer :service_presenter, :endpoint_presenter

    # Define additional helpers, this one is for csrf_meta_tag
    helper_method :title, :tag_with_anchor, :protect_against_forgery?

    # override the layout in your subclass if needed.
    layout 'application'

    def title
      [@service_presenter.try(:title), @endpoint_presenter.try(:title)].compact.join ' | '
    end

    def tag_with_anchor(tag, content, anchor_slug = nil)
      anchor_slug ||= content.downcase.gsub(' ', '_')
      <<-EOS
      <#{tag} id="#{anchor_slug}">
        <a href="##{anchor_slug}" class="anchor">
          #{content}
        </a>
      </#{tag}>
      EOS
    end

    # we are not in a browser, no need for this
    def protect_against_forgery?
      false
    end

    # so that your flash calls still work
    def flash
      {}
    end

    # and nil request to differentiate between live and offline
    def request
      OpenStruct.new
    end

    # and params will be accessible
    def params
      {}
    end

    # so that your cookies calls still work
    def cookies
      {}
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lurker-1.0.0 lib/lurker/rendering_controller.rb
lurker-0.6.12 lib/lurker/rendering_controller.rb
lurker-0.6.11 lib/lurker/rendering_controller.rb
lurker-0.6.10 lib/lurker/rendering_controller.rb