class LB::Persistence

Persistence

Constants

VERSION

Version

Attributes

settings[R]

Public Class Methods

new(settings) click to toggle source
# File lib/lb/persistence.rb, line 20
def initialize(settings)
  @settings = settings
end

Public Instance Methods

configuration_for(connection) click to toggle source

Create ROM configuration for given connection or URI

@param [Sequel::Database | String]

@return [ROM::Configuration]

@api private

# File lib/lb/persistence.rb, line 99
def configuration_for(connection)
  ROM::Configuration.new(:sql, connection)
end
configure_for(connection) click to toggle source

Configure ROM for given connection or URI

@param [Sequel::Database | String]

@return [ROM::Configuration]

@api private

# File lib/lb/persistence.rb, line 65
def configure_for(connection)
  configure(configuration_for(connection))
end
connect(*args) click to toggle source

Connect to database definied by given URI

@param [String] @param [Hash]

@return [Sequel::Database]

@api private

# File lib/lb/persistence.rb, line 53
def connect(*args)
  Sequel.connect(*args)
end
container() click to toggle source

Get ROM container

@return [ROM::Conatainer]

@api private

# File lib/lb/persistence.rb, line 30
def container
  @container ||= rom_setup(uri)
end
container_from(config) click to toggle source

Create ROM container for given config

@param [ROM::Configuration] config

@return [ROM::Container]

@api private

# File lib/lb/persistence.rb, line 87
def container_from(config)
  ROM.container(config)
end
repository(repository) click to toggle source

Get ROM Repository instance for Repository class

@return [ROM::Repository]

@api private

# File lib/lb/persistence.rb, line 40
def repository(repository)
  repository.new(container)
end
uri() click to toggle source

Get URI

@return [String]

@api private

# File lib/lb/persistence.rb, line 75
def uri
  @uri ||= settings.database_uri
end

Private Instance Methods

configure(config) click to toggle source

Configure ROM

@param [ROM::Configuration] config

@return [ROM::Configuration]

@api private

# File lib/lb/persistence.rb, line 125
def configure(config)
  config.auto_registration(settings.source_dir, options)

  config
end
options() click to toggle source

Get ROM auto registration options

@param [IO] source @param [IO] target

@return [Hash]

@api private

# File lib/lb/persistence.rb, line 140
def options
  {
    component_dirs: {
      relations: :relations,
      commands: :commands,
      mappers: :mappers
    },
    namespace: settings.namespace
  }
end
rom_setup(uri) click to toggle source

Setup rom for given URI

@param [String]

@return [ROM::Conatainer]

@api private

# File lib/lb/persistence.rb, line 113
def rom_setup(uri)
  container_from(configure_for(uri))
end