module Terrestrial::PublicConveniencies

Public Instance Methods

config(database, clock: Time) click to toggle source
# File lib/terrestrial/public_conveniencies.rb, line 36
def config(database, clock: Time)
  dirty_map = Private.build_dirty_map
  identity_map = Private.build_identity_map

  Configurations::ConventionalConfiguration.new(
    datastore: Private.datastore_adapter(database),
    clock: clock,
    dirty_map: dirty_map,
    identity_map: identity_map,
  )
end
object_store(config:) click to toggle source
# File lib/terrestrial/public_conveniencies.rb, line 48
def object_store(config:)
  load_pipeline = Private.build_load_pipeline(
    dirty_map: config.dirty_map,
    identity_map: config.identity_map,
  )
  dump_pipeline = Private.build_dump_pipeline(
    dirty_map: config.dirty_map,
    datastore: config.datastore,
    clock: config.clock,
  )

  mappings = config.mappings
  mapping_names = mappings.keys
  stores = Hash[mapping_names.map { |mapping_name|
    [
      mapping_name,
      Private.relational_store(
        name: mapping_name,
        mappings: mappings ,
        datastore: config.datastore,
        identity_map: config.identity_map,
        dirty_map: config.dirty_map,
        load_pipeline: load_pipeline,
        dump_pipeline: dump_pipeline,
      )
    ]
  }]

  ObjectStore.new(stores)
end