Sha256: 30d327df37d0516aa723fd50c3fc7a76d1f6615d6257344e464da79fa874e87d
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
require 'legion/data/version' require 'sequel' require 'legion/data/connection' require 'legion/data/migration' require 'legion/data/model' module Legion module Data def build(options = {}) @connected = false options.merge!(default_options) { |_key, v1, _v2| v1 } @connection = connect(options[:connection]) if options[:connection][:auto_connect] return unless options[:connection][:auto_connect] migrate(@connection, options[:migration]) model(options[:model]) if options[:model][:auto_load] end def connect(_options = {}) Legion::Data::Connection.new end def migrate(connection, options = {}) return false if options.key?(:auto_migrate) && options[:auto_migrate] Legion::Data::Migration.new(connection.database.connection) end def model(_options = {}) Legion::Data::Models.new end def default_options { migration: { auto_migrate: true }, model: { auto_load: true }, connection: { auto_connect: true } } end def merge_options(options, default = default_options) options.merge!(default) { |_key, v1, _v2| v1 } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
legion-data-0.1.1 | lib/legion/data.rb |
legion-data-0.1.0 | lib/legion/data.rb |