class LB::Persistence
Constants
- VERSION
Version
Attributes
Public Class Methods
# File lib/lb/persistence.rb, line 20 def initialize(settings) @settings = settings end
Public Instance Methods
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 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 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
Get ROM container
@return [ROM::Conatainer]
@api private
# File lib/lb/persistence.rb, line 30 def container @container ||= rom_setup(uri) end
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
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
Get URI
@return [String]
@api private
# File lib/lb/persistence.rb, line 75 def uri @uri ||= settings.database_uri end
Private Instance Methods
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
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
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