Sha256: 3c5284a7d1ba84ea5a5cb47f9e6dc88d372a8378706394cb9b553d6b121301a7

Contents?: true

Size: 1.39 KB

Versions: 1

Compression:

Stored size: 1.39 KB

Contents

# encoding: utf-8

module OpenSesame
  class Engine < ::Rails::Engine
    isolate_namespace OpenSesame

    config.generators do |g|
      g.test_framework :rspec, :view_specs => false
    end

    ActiveSupport.on_load(:action_controller) do
      include OpenSesame::Helpers::ControllerHelper
    end

    ActiveSupport.on_load(:action_view) do
      include OpenSesame::Helpers::ViewHelper
    end

    initializer "opensesame.middleware", :after => :load_config_initializers do |app|
      if OpenSesame.enabled?
        require 'open_sesame/github_warden'

        app.config.assets.precompile += ['opensesame.css']

        OpenSesame.configuration.validate!

        app.config.middleware.use OpenSesame::GithubAuth,
          OpenSesame.github_client[:id],
          OpenSesame.github_client[:secret],
          :path_prefix => OpenSesame.mount_prefix

        if defined?(Devise)
          Devise.setup do |config|
            config.warden do |manager|
              manager.default_strategies(:opensesame_github, :scope => :opensesame)
              manager.failure_app = OpenSesame::Failure::DeviseApp.new
            end
          end
        else
          app.config.middleware.use ::Warden::Manager do |manager|
            manager.default_strategies(:opensesame_github, :scope => :opensesame)
            manager.failure_app = OpenSesame::Failure::App.new
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
opensesame-0.1.0 lib/open_sesame/engine.rb