Class: Contacts::Gmail
Constant Summary collapse
- DETECTED_DOMAINS =
[ /gmail.com/i, /googlemail.com/i ]
- CONTACTS_SCOPE =
'http://www.google.com/m8/feeds/'- CONTACTS_FEED =
CONTACTS_SCOPE + 'contacts/default/full/?max-results=1000'
Instance Method Summary collapse
Methods inherited from Base
#connect, #connected?, #initialize, #login, #password, #skip_gzip?
Constructor Details
This class inherits a constructor from Contacts::Base
Instance Method Details
#contacts ⇒ Object
10 11 12 |
# File 'lib/contacts/gmail.rb', line 10 def contacts return @contacts if @contacts end |
#real_connect ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/contacts/gmail.rb', line 14 def real_connect @client = GData::Client::Contacts.new @client.clientlogin(@login, @password, @captcha_token, @captcha_response) feed = @client.get(CONTACTS_FEED).to_xml @contacts = feed.elements.to_a('entry').collect do |entry| title, email = entry.elements['title'].text, nil primary_email = nil entry.elements.each('gd:email') do |e| if e.attribute('primary') primary_email = e.attribute('address').value else email = e.attribute('address').value end end email = primary_email unless primary_email.nil? [title, email] unless email.nil? end @contacts.compact! rescue GData::Client::AuthorizationError => e raise AuthenticationError, "Username or password are incorrect" end |