class DataMapper::Spec::Adapters::Adapter
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/dm-core/spec/setup.rb, line 95 def initialize(name) @name = name.to_sym end
Public Instance Methods
adapter()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 99 def adapter @adapter ||= setup! end
Also aliased as: setup
adapter_name()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 113 def adapter_name @adapter_name ||= infer_adapter_name end
alternate_storage_name()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 131 def alternate_storage_name "datamapper_alternate_tests" end
connection_uri()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 117 def connection_uri "#{adapter_name}://#{username}%s@#{host}/#{storage_name}".tap do |s| return s % ((password.empty?) ? "" : ":#{password}") end end
default_storage_name()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 127 def default_storage_name "datamapper_default_tests" end
host()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 143 def host ENV.fetch('DM_DB_HOST', 'localhost') end
password()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 139 def password ENV.fetch('DM_DB_PASSWORD', 'datamapper') end
setup!()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 105 def setup! adapter = DataMapper.setup(name, connection_uri) test_connection(adapter) adapter rescue Exception => e puts "Could not connect to the database using '#{connection_uri}' because of: #{e.inspect}" end
storage_name()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 123 def storage_name send("#{name}_storage_name") end
test_connection(adapter)
click to toggle source
Test the connection
Overwrite this method if you need to perform custom connection testing
@raise [Exception]
# File lib/dm-core/spec/setup.rb, line 152 def test_connection(adapter) if adapter.respond_to?(:select) adapter.select('SELECT 1') end end
username()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 135 def username ENV.fetch('DM_DB_USER', 'datamapper') end
Private Instance Methods
infer_adapter_name()
click to toggle source
# File lib/dm-core/spec/setup.rb, line 160 def infer_adapter_name demodulized = DataMapper::Inflector.demodulize(self.class.name.chomp('Adapter')) DataMapper::Inflector.underscore(demodulized).freeze end