module RorHack::ControllerRequestUglyInject

Public Class Methods

dingo_info() click to toggle source
# File lib/ror_hack/active_record_hack.rb, line 114
def self.dingo_info
  if RequestStore.store.key?(:controller_params)
    RequestStore.store.fetch(:controller_params)
  else
    OpenStruct.new.freeze
  end
end
included(mod) click to toggle source
# File lib/ror_hack/active_record_hack.rb, line 100
def self.included(mod)
  ActionController::Base.class_eval do
    before_filter do
      params                                 = {
        user:       (current_user rescue nil),
        request_ip: request.env['HTTP_X_REAL_IP'] || request.remote_ip,
        session:    session
      }
      RequestStore.store[:controller_params] = OpenStruct.new(params).freeze
    end
  end
  mod.class_eval do
    delegate :dingo_info, to: :class

    def self.dingo_info
      if RequestStore.store.key?(:controller_params)
        RequestStore.store.fetch(:controller_params)
      else
        OpenStruct.new.freeze
      end
    end
  end
end