class Trice::ControllerMethods::ReferenceTimeAssignment

Constants

HEADER_STUB_KEY
QUERY_STUB_KEY

Public Class Methods

new(config) click to toggle source
# File lib/trice/controller_methods/reference_time_assignment.rb, line 8
def initialize(config)
  @stub_configuration = config
end

Public Instance Methods

around(controller, &action) click to toggle source
# File lib/trice/controller_methods/reference_time_assignment.rb, line 12
def around(controller, &action)
  t = stubbed_requested_at(controller) || Time.now

  Trice.with_reference_time(t, &action)
end

Private Instance Methods

requested_at_string(request) click to toggle source
# File lib/trice/controller_methods/reference_time_assignment.rb, line 28
def requested_at_string(request)
  request.params[QUERY_STUB_KEY] || request.headers[HEADER_STUB_KEY]
end
stubbed_requested_at(controller) click to toggle source
# File lib/trice/controller_methods/reference_time_assignment.rb, line 20
def stubbed_requested_at(controller)
  requested_at = requested_at_string(controller.request)

  if requested_at && @stub_configuration.stubbable?(controller)
    Time.zone.parse(requested_at)
  end
end