class AuditLoggable::Sweeper
Constants
- STORED_DATA
Attributes
current_user_methods[R]
Public Class Methods
new(current_user_methods: %i[current_user])
click to toggle source
# File lib/audit_loggable/sweeper.rb, line 11 def initialize(current_user_methods: %i[current_user]) @current_user_methods = ::Array.wrap(current_user_methods).map(&:to_sym) end
Public Instance Methods
around(controller, &block)
click to toggle source
# File lib/audit_loggable/sweeper.rb, line 15 def around(controller, &block) Store.set({ current_controller: controller }) do Store.set( STORED_DATA .each_pair .with_object({}) { |(k, m), h| h[k] = __send__(m) }, &block ) end end
Private Instance Methods
controller()
click to toggle source
# File lib/audit_loggable/sweeper.rb, line 42 def controller Store.current_controller end
current_user()
click to toggle source
# File lib/audit_loggable/sweeper.rb, line 34 def current_user lambda do current_user_methods .lazy.map { |m| controller.__send__(m) if controller.respond_to?(m, true) } .find(&:present?) end end