Class: AddressBook

Inherits:
Object
  • Object
show all
Defined in:
lib/address_book/base.rb,
lib/address_book/gmail.rb,
lib/address_book/mailru.rb,
lib/address_book/yandex.rb,
lib/address_book/rambler.rb,
lib/address_book/version.rb

Defined Under Namespace

Classes: AuthenticationError, Base, Gmail, MailRu, Rambler, ServiceNotFound, Yandex

Constant Summary collapse

VERSION =
"0.1.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.domainsObject

Returns the value of attribute domains.



6
7
8
# File 'lib/address_book/base.rb', line 6

def domains
  @domains
end

Class Method Details

.export(login, password) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/address_book/base.rb', line 19

def export(, password)
  domain = extract_domain 
  service = domains[domain]
  if service 
    service.new(, password).contacts
  else
    raise ServiceNotFound, "No service registered for #{domain.inspect} domain"
  end
end

.extract_domain(login) ⇒ Object



15
16
17
# File 'lib/address_book/base.rb', line 15

def extract_domain()
  .split("@").last
end

.register_service(list, klass) ⇒ Object



8
9
10
11
12
13
# File 'lib/address_book/base.rb', line 8

def register_service(list, klass)
  self.domains ||= {}
  Array(list).each do |domain|
    self.domains[domain] = klass
  end
end