34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/excursion/pool.rb', line 34
def self.datastore
raise NoDatastoreError, "You must configure excursion with a datastore." if Excursion.configuration.datastore.nil?
require "excursion/datastores/#{Excursion.configuration.datastore.to_s}"
case Excursion.configuration.datastore.to_sym
when :file
raise DatastoreConfigurationError, "You must configure the :file datastore with a datastore_file path" if Excursion.configuration.datastore_file.nil?
@@datastore ||= Excursion::Datastores::File.new(Excursion.configuration.datastore_file)
when :memcache
raise MemcacheConfigurationError, "You must configure the :memcache datastore with a memcache_server" if Excursion.configuration.memcache_server.nil?
@@datastore ||= Excursion::Datastores::Memcache.new(Excursion.configuration.memcache_server)
when :active_record
raise TableDoesNotExist, "To use the :active_record datastore you must first run `rails generate excursion:active_record` followed by `rake db:migrate` to create the storage table" unless Excursion::RoutePool.table_exists?
@@datastore ||= Excursion::Datastores::ActiveRecord.new
when :active_record_with_memcache
raise MemcacheConfigurationError, "You must configure the :active_record_with_memcache datastore with a memcache_server" if Excursion.configuration.memcache_server.nil?
raise TableDoesNotExist, "To use the :active_record_with_memcache datastore you must first run `rails generate excursion:active_record` followed by `rake db:migrate` to create the storage table" unless Excursion::RoutePool.table_exists?
@@datastore ||= Excursion::Datastores::ActiveRecord.new(Excursion.configuration.memcache_server)
end
end
|