Method: Logidze::Model#at

Defined in:
lib/logidze/model.rb

#at(time: nil, version: nil) ⇒ Object

Return a dirty copy of record at specified time If time/version is less then the first version, then return nil. If time/version is greater then the last version, then return self. rubocop: disable Metrics/MethodLength



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/logidze/model.rb', line 91

def at(time: nil, version: nil)
  return at_version(version) if version

  time = parse_time(time)

  unless log_data
    return Logidze.return_self_if_log_data_is_empty ? self : nil
  end

  return nil unless log_data.exists_ts?(time)

  if log_data.current_ts?(time)
    self.logidze_requested_ts = time
    return self
  end

  log_entry = log_data.find_by_time(time)

  build_dup(log_entry, time)
end