Module: ActiveRecord::Temporal::ApplicationVersioning::ApplicationVersioned

Extended by:
ActiveSupport::Concern
Defined in:
lib/activerecord/temporal/application_versioning/application_versioned.rb

Defined Under Namespace

Classes: Original, Revision

Instance Method Summary collapse

Instance Method Details

#after_initialize_revision(old_revision) ⇒ Object



82
83
84
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 82

def after_initialize_revision(old_revision)
  self.version = old_revision.version + 1
end

#head_revision?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 86

def head_revision?
  time_dimension && !time_dimension_end
end

#inactivateObject



110
111
112
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 110

def inactivate
  inactivate_at(scope_time || Time.current)
end

#inactivate_at(time) ⇒ Object



114
115
116
117
118
119
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 114

def inactivate_at(time)
  raise ClosedRevisionError, "Cannot inactivate closed version" unless head_revision?

  set_time_dimension_end(time)
  save
end

#reviseObject



90
91
92
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 90

def revise
  revise_at(scope_time || Time.current)
end

#revise_at(time) ⇒ Object



94
95
96
97
98
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 94

def revise_at(time)
  raise ClosedRevisionError, "Cannot revise closed version" unless head_revision?

  Revision.new(self, time, save: true)
end

#revisionObject



100
101
102
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 100

def revision
  revision_at(scope_time || Time.current)
end

#revision_at(time) ⇒ Object



104
105
106
107
108
# File 'lib/activerecord/temporal/application_versioning/application_versioned.rb', line 104

def revision_at(time)
  raise ClosedRevisionError, "Cannot revise closed version" unless head_revision?

  Revision.new(self, time, save: false)
end