Class: Binenc::Provider

Inherits:
Object
  • Object
show all
Includes:
Singleton, TR::CondUtils
Defined in:
lib/binenc/provider.rb

Instance Method Summary collapse

Instance Method Details

#default_providerObject



40
41
42
# File 'lib/binenc/provider.rb', line 40

def default_provider
  @defaultProvider
end

#default_provider=(prov) ⇒ Object

Raises:



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/binenc/provider.rb', line 19

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



45
46
47
48
49
50
51
# File 'lib/binenc/provider.rb', line 45

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

#providerObject

Raises:



53
54
55
56
57
58
59
60
61
# File 'lib/binenc/provider.rb', line 53

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:



12
13
14
15
16
17
# File 'lib/binenc/provider.rb', line 12

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