Sha256: dfe537248a355b541258913706e10af3e83b5f26d82f4786253da424a4a99a0b

Contents?: true

Size: 1.41 KB

Versions: 10

Compression:

Stored size: 1.41 KB

Contents

require "shamu/rack"
require "shamu/json_api"

module Shamu
  module Rails

    # Integrate Shamu with rails.
    class Railtie < ::Rails::Railtie

      rake_tasks do
        rake_path = File.expand_path( "../../tasks/*.rake" )
        Dir[ rake_path ].each { |f| load f }
      end

      initializer "shamu.configure" do
        config.shamu = ActiveSupport::OrderedOptions.new
        config.shamu.json_api = ActiveSupport::OrderedOptions.new
        config.shamu.json_api.default_url_options = {}

        if defined? ::ActionController
          controller_classes = [ ::ActionController::Base ]
          controller_classes << ::ActionController::API if defined? ::ActionController::API

          controller_classes.each do |klass|
            klass.send :include, Shamu::Rails::Controller
            klass.send :include, Shamu::Rails::Entity
            klass.send :include, Shamu::Rails::Features
          end

          Mime::Type.register Shamu::JsonApi::MIME_TYPE, :json_api

          ActionController::Renderers.add :json_api do |obj, _options|
            self.content_type ||= Mime[:json_api]
            obj
          end
        end
      end

      initializer "shamu.insert_middleware" do |app|
        app.config.middleware.use Scorpion::Rack::Middleware
        app.config.middleware.use Shamu::Rack::CookiesMiddleware
        app.config.middleware.use Shamu::Rack::QueryParamsMiddleware
      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
shamu-0.0.24 lib/shamu/rails/railtie.rb
shamu-0.0.21 lib/shamu/rails/railtie.rb
shamu-0.0.20 lib/shamu/rails/railtie.rb
shamu-0.0.19 lib/shamu/rails/railtie.rb
shamu-0.0.18 lib/shamu/rails/railtie.rb
shamu-0.0.17 lib/shamu/rails/railtie.rb
shamu-0.0.15 lib/shamu/rails/railtie.rb
shamu-0.0.14 lib/shamu/rails/railtie.rb
shamu-0.0.13 lib/shamu/rails/railtie.rb
shamu-0.0.11 lib/shamu/rails/railtie.rb