Module: ChronoModel::TimeGate::ClassMethods

Includes:
TimeMachine::HistoryMethods::Timeline
Defined in:
lib/chrono_model/time_gate.rb

Instance Method Summary collapse

Instance Method Details

#as_of(time) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/chrono_model/time_gate.rb', line 10

def as_of(time)
  time = Conversions.time_to_utc_string(time.utc) if time.kind_of? Time

  virtual_table = select(%[
    #{quoted_table_name}.*, #{connection.quote(time)}::timestamp AS "as_of_time"]
  ).to_sql

  as_of = all.from("(#{virtual_table}) #{quoted_table_name}")

  as_of.instance_variable_set(:@temporal, time)

  return as_of
end