class Trice::Repository

Public Class Methods

new() click to toggle source
# File lib/trice/repository.rb, line 3
def initialize
  @backend = ThreadLocalBackend.new('trice.reference_time'.freeze)
end

Public Instance Methods

reference_time() click to toggle source
# File lib/trice/repository.rb, line 14
def reference_time
  @backend.get || raise(NoReferenceTime)
end
reference_time=(time) click to toggle source
# File lib/trice/repository.rb, line 7
def reference_time=(time)
  unless time.nil? || time.acts_like?(:time)
    raise ArgumentError, "#{time.inspect} is not behave like time"
  end
  @backend.set(time)
end
with_reference_time(time) { |time| ... } click to toggle source
# File lib/trice/repository.rb, line 18
def with_reference_time(time, &block)
  original = @backend.get

  begin
    self.reference_time = time
    yield time
  ensure
    self.reference_time = original
  end
end