Class: Ca::DataStore::Provider

Inherits:
Object
  • Object
show all
Includes:
Singleton, TR::CondUtils, TeLogger::TeLogHelper
Defined in:
lib/ca/data_store/provider.rb

Instance Method Summary collapse

Instance Method Details

#default_providerObject



45
46
47
# File 'lib/ca/data_store/provider.rb', line 45

def default_provider
  @defaultProvider
end

#default_provider=(prov) ⇒ Object

Raises:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ca/data_store/provider.rb', line 24

def default_provider=(prov)
  raise ProviderException, "Nil provider is not supported" if prov.nil?

  case prov
  when String
    if is_provider_registered?(prov)
      @defaultProvider = find_provider(prov)
    else
      raise ProviderException, "Given provider '#{prov}' to set as default has yet to be registered."
    end
  else
    if prov.respond_to?(:provider_name) 
      add_provider(prov) if not is_provider_registered?(prov.provider_name)
      @defaultProvider = prov
    else
      raise ProviderException, "Given provider to set as default does not have name"
    end
  end

  @defaultProvider
end

#find_provider(prov) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/ca/data_store/provider.rb', line 50

def find_provider(prov)
  if not_empty?(prov)
    providers[prov]
  else
    raise ProviderException, "Cannot find nil empty provider"
  end
end

#providerObject

Raises:



58
59
60
61
62
63
64
65
66
# File 'lib/ca/data_store/provider.rb', line 58

def provider
  raise ProviderException, "No provider is registered" if is_providers_empty?

  if is_empty?(default_provider)
    providers.values.first
  else
    default_provider
  end
end

#register(prov) ⇒ Object

Raises:



17
18
19
20
21
22
# File 'lib/ca/data_store/provider.rb', line 17

def register(prov)
  raise ProviderException, "Provider cannot be nil" if prov.nil?
  raise ProviderException, "Provider must have name" if not prov.respond_to?(:provider_name)

  add_provider(prov)
end