Class: Pebblebed::Connector

Inherits:
Object
  • Object
show all
Defined in:
lib/pebblebed/connector.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key = nil, url_opts = {}) ⇒ Connector

Returns a new instance of Connector.



6
7
8
9
10
# File 'lib/pebblebed/connector.rb', line 6

def initialize(key = nil, url_opts = {})
  @key = key
  @clients = {}
  @url_opts = url_opts
end

Instance Attribute Details

#keyObject

Returns the value of attribute key.



5
6
7
# File 'lib/pebblebed/connector.rb', line 5

def key
  @key
end

Class Method Details

.client_class_for(service) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/pebblebed/connector.rb', line 30

def self.client_class_for(service)
  begin
    "::Pebblebed::#{service.to_s.classify}Client".constantize
  rescue NameError
    GenericClient
  end
end

Instance Method Details

#[](service) ⇒ Object



12
13
14
15
# File 'lib/pebblebed/connector.rb', line 12

def [](service)
  client_class = self.class.client_class_for(service)
  (@clients[service.to_sym] ||= client_class.new(@key, Pebblebed.root_url_for(service.to_s, @url_opts)))
end

#partsObject



26
27
28
# File 'lib/pebblebed/connector.rb', line 26

def parts
  @@parts ||= Pebblebed::Parts.new(self)
end

#quorum(services = nil, session_key = nil) ⇒ Object

Returns a quorum client that talks to the provided list of pebbles all at once. The result is a hash of services and their responses. If any service returned an error, their entry in the hash will be an HttpError object.



21
22
23
# File 'lib/pebblebed/connector.rb', line 21

def quorum(services = nil, session_key = nil)
  QuorumClient.new(services || Pebblebed.services, session_key)
end