Sha256: e7e9264dc9591a83004ae96deac7ddc8b9f4b6bdc6524e257f6462d8442ef146
Contents?: true
Size: 1.55 KB
Versions: 3
Compression:
Stored size: 1.55 KB
Contents
require "sequel_rails/storage/abstract" require "sequel_rails/storage/sqlite" require "sequel_rails/storage/mysql" require "sequel_rails/storage/mysql2" require "sequel_rails/storage/postgres" require "sequel_rails/storage/jdbc" module SequelRails module Storage def self.create_all with_local_repositories { |config| create_environment(config) } end def self.drop_all with_local_repositories { |config| drop_environment(config) } end def self.create_environment(config) adapter_for(config).create end def self.drop_environment(config) adapter_for(config).drop end def self.adapter_for(config_or_env) config = if config_or_env.kind_of? Hash config_or_env else ::SequelRails.configuration.environments[config_or_env.to_s] end lookup_class(config['adapter']).new config end private def self.with_local_repositories ::SequelRails.configuration.environments.each_value do |config| next if config['database'].blank? if config['host'].blank? || %w[ 127.0.0.1 localhost ].include?(config['host']) yield config else puts "This task only modifies local databases. #{config['database']} is on a remote host." end end end def self.lookup_class(adapter) klass_name = adapter.camelize.to_sym unless self.const_defined?(klass_name) raise "Adapter #{adapter} not supported (#{klass_name.inspect})" end const_get klass_name end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sequel-rails-0.4.0.pre2 | lib/sequel_rails/storage.rb |
sequel-rails-0.4.0.pre1 | lib/sequel_rails/storage.rb |
sequel-rails-0.4.0.pre | lib/sequel_rails/storage.rb |