Class: Audited::Sweeper

Inherits:
ActionController::Caching::Sweeper
  • Object
show all
Defined in:
lib/audited/sweeper.rb

Instance Method Summary collapse

Instance Method Details

#add_observer!(klass) ⇒ Object



29
30
31
32
# File 'lib/audited/sweeper.rb', line 29

def add_observer!(klass)
  super
  define_callback(klass)
end

#around(controller) ⇒ Object



8
9
10
11
12
13
# File 'lib/audited/sweeper.rb', line 8

def around(controller)
  self.controller = controller
  yield
ensure
  self.controller = nil
end

#before_create(audit) ⇒ Object



15
16
17
18
19
# File 'lib/audited/sweeper.rb', line 15

def before_create(audit)
  audit.user ||= current_user
  audit.remote_address = controller.try(:request).try(:remote_ip)
  audit.request_uuid = request_uuid if request_uuid
end

#controllerObject



43
44
45
# File 'lib/audited/sweeper.rb', line 43

def controller
  ::Audited.store[:current_controller]
end

#controller=(value) ⇒ Object



47
48
49
# File 'lib/audited/sweeper.rb', line 47

def controller=(value)
  ::Audited.store[:current_controller] = value
end

#current_userObject



21
22
23
# File 'lib/audited/sweeper.rb', line 21

def current_user
  controller.send(Audited.current_user_method) if controller.respond_to?(Audited.current_user_method, true)
end

#define_callback(klass) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/audited/sweeper.rb', line 34

def define_callback(klass)
  observer = self
  callback_meth = :_notify_audited_sweeper
  klass.send(:define_method, callback_meth) do
    observer.update(:before_create, self)
  end
  klass.send(:before_create, callback_meth)
end

#request_uuidObject



25
26
27
# File 'lib/audited/sweeper.rb', line 25

def request_uuid
  controller.try(:request).try(:uuid)
end