Module: Scorpion::Rails::Controller

Defined in:
lib/scorpion/rails/controller.rb

Overview

Adds a scorpion nest to support injection into rails controllers.

Constant Summary collapse

ENV_KEY =
"scorpion.instance".freeze

Class Method Summary collapse

Class Method Details

.scorpionScorpion .scorpion(scope) ⇒ ActiveRecord::Relation

Overloads:



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/scorpion/rails/controller.rb', line 27

def self.included( base )
  # Setup dependency injection
  base.send :include, Scorpion::Object
  base.send :include, Scorpion::Rails::Nest

  base.around_action :with_scorpion

  base.class_eval do
    if respond_to?( :helper_method )
      helper_method :scorpion
    end

    # Defined here to override the #scorpion method provided by Scorpion::Object.
    def scorpion( scope = nil )
      if scope
        super
      else
        ensure_scorpion( request.env[ENV_KEY] )
      end
    end
  end

  super
end