Module: ChronoModel::TimeMachine::ClassMethods

Defined in:
lib/chrono_model/time_machine.rb

Instance Method Summary collapse

Instance Method Details

#as_of(time) ⇒ Object

Returns an ActiveRecord::Relation on the history of this model as it was time ago.


353
354
355
# File 'lib/chrono_model/time_machine.rb', line 353

def as_of(time)
  history.as_of(time)
end

#attribute_names_for_history_changesObject


357
358
359
360
# File 'lib/chrono_model/time_machine.rb', line 357

def attribute_names_for_history_changes
  @attribute_names_for_history_changes ||= attribute_names -
    %w( id hid validity recorded_at )
end

#has_timeline(options) ⇒ Object


362
363
364
365
366
367
368
369
370
# File 'lib/chrono_model/time_machine.rb', line 362

def has_timeline(options)
  changes = options.delete(:changes)
  assocs  = history.has_timeline(options)

  attributes = changes.present? ?
    Array.wrap(changes) : assocs.map(&:name)

  attribute_names_for_history_changes.concat(attributes.map(&:to_s))
end

#history?Boolean

Identify this class as the parent, non-history, class.

Returns:

  • (Boolean)

347
348
349
# File 'lib/chrono_model/time_machine.rb', line 347

def history?
  false
end