Class: Volt::DataStore

Inherits:
Object show all
Defined in:
lib/volt/data_stores/data_store.rb,
lib/volt/data_stores/base_adaptor_client.rb,
lib/volt/data_stores/base_adaptor_server.rb

Defined Under Namespace

Classes: BaseAdaptorClient, BaseAdaptorServer

Class Method Summary collapse

Class Method Details

.adaptor_clientObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/volt/data_stores/data_store.rb', line 23

def self.adaptor_client
  # Load the client adaptor
  @adaptor_client ||= begin
    ds_name = Volt.config.public.datastore_name
    unless ds_name
      raise "No data store configured, please include volt-mongo or " +
            "another similar gem."
    end
    adaptor_class_name = ds_name.capitalize + "AdaptorClient"
    Volt::DataStore.const_get(adaptor_class_name)
  end
end

.fetchObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/volt/data_stores/data_store.rb', line 5

def self.fetch
  # Cache the driver
  return @adaptor if @adaptor

  database_name = Volt.config.db_driver
  adaptor_name = database_name.camelize + 'AdaptorServer'

  root = Volt::DataStore
  if root.const_defined?(adaptor_name)
    adaptor_name = root.const_get(adaptor_name)
    @adaptor = adaptor_name.new
  else
    raise "#{database_name} is not a supported database, you might be missing a volt-#{database_name} gem"
  end

  @adaptor
end