Module: WhittakerTech::Aeon

Defined in:
lib/whittaker_tech/aeon.rb,
app/models/whittaker_tech/aeon/override.rb,
app/services/whittaker_tech/aeon/forker.rb,
app/jobs/whittaker_tech/aeon/disposal_job.rb,
app/models/whittaker_tech/aeon/allocation.rb,
app/models/whittaker_tech/aeon/occurrence.rb,
app/services/whittaker_tech/aeon/disposer.rb,
app/services/whittaker_tech/aeon/resolver.rb,
app/services/whittaker_tech/aeon/projector.rb,
app/jobs/whittaker_tech/aeon/projection_job.rb,
app/jobs/whittaker_tech/aeon/application_job.rb,
app/models/whittaker_tech/aeon/application_record.rb,
app/services/whittaker_tech/aeon/override_applier.rb,
app/models/concerns/whittaker_tech/aeon/schedulable.rb,
app/services/whittaker_tech/aeon/resolved_occurrence.rb,
app/controllers/whittaker_tech/aeon/application_controller.rb,
lib/whittaker_tech/aeon/engine.rb,
lib/whittaker_tech/aeon/version.rb,
lib/generators/whittaker_tech/aeon/install/install_generator.rb

Overview

Temporal physics engine for Rails. Projects immutable temporal laws (Allocations) into materialized Occurrences while preserving historical integrity through forward-only timeline forking.

All tables live in the +wt_aeon+ PostgreSQL schema, governed by Aeon.table_name_prefix.

Examples:

Configure the engine

WhittakerTech::Aeon.configure do |c|
  c.projection_buffer        = 30.days
  c.max_projection_window    = 2.years
  c.disposal_policy          = :windowed
end

Defined Under Namespace

Modules: Generators, Schedulable Classes: Allocation, ApplicationController, ApplicationJob, ApplicationRecord, Configuration, DisposalJob, Disposer, Engine, Forker, Occurrence, Override, OverrideApplier, ProjectionJob, Projector, ResolvedOccurrence, Resolver

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.configurationConfiguration

Returns the current engine configuration, lazily initialised.

Returns:



55
56
57
# File 'lib/whittaker_tech/aeon.rb', line 55

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Yields the current Configuration for mutation.

Yield Parameters:



63
64
65
# File 'lib/whittaker_tech/aeon.rb', line 63

def self.configure
  yield(configuration)
end

.table_name_prefixString

ActiveRecord table name prefix. Maps models to the +wt_aeon+ PG schema.

Returns:

  • (String)

    +“wt_aeon.”+



23
24
25
# File 'lib/whittaker_tech/aeon.rb', line 23

def self.table_name_prefix
  'wt_aeon.'
end