class Authlogic::Session::MagicColumn::AssignsLastRequestAt

Assigns the current time to the `last_request_at` attribute.

  1. The `last_request_at` column must exist

  2. Assignment can be disabled on a per-controller basis

  3. Assignment will not happen more often than `last_request_at_threshold`

seconds.

@api private

Public Class Methods

new(current_time, record, controller, last_request_at_threshold) click to toggle source
# File lib/authlogic/session/magic_column/assigns_last_request_at.rb, line 20
def initialize(current_time, record, controller, last_request_at_threshold)
  @current_time = current_time
  @record = record
  @controller = controller
  @last_request_at_threshold = last_request_at_threshold
end

Public Instance Methods

assign() click to toggle source
# File lib/authlogic/session/magic_column/assigns_last_request_at.rb, line 27
def assign
  return unless assign?
  @record.last_request_at = @current_time
end

Private Instance Methods

assign?() click to toggle source

@api private

# File lib/authlogic/session/magic_column/assigns_last_request_at.rb, line 35
def assign?
  @record &&
    @record.class.column_names.include?("last_request_at") &&
    @controller.last_request_update_allowed? && (
      @record.last_request_at.blank? ||
      @last_request_at_threshold.to_i.seconds.ago >= @record.last_request_at
    )
end