<commit_before>== Google Contacts API

Fetch users' contact lists from your web application without asking them to
provide their passwords.

First, make users follow this URL:

  Contacts::Gmail.authentication_url('http://mysite.com/invite')

They will authenticate on Google and it will send them back to the URL
provided. Google will add a token GET parameter to the query part of the URL.
Use that token in the next step:

  gmail = Contacts::Gmail.new('<EMAIL>', params[:token])
  contacts = gmail.contacts
  #-> [ ['Fitzgerald', '<EMAIL>', '<EMAIL>'],
        ['<NAME>', '<EMAIL>'], ...
        ]

This is still alpha. It has been tested only with mocks, not live.
Feel free to contribute; I plan to support more APIs (Microsoft, etc).
Read more in Contacts::Gmail.

Author: <NAME> (<EMAIL>)

== Specdoc

Contacts::Gmail.authentication_url
- generates a URL for target with default parameters
- should handle boolean parameters
- skips parameters that have nil value

Contacts::Gmail
- should be set to query contacts from a specific account
- fetches contacts feed via HTTP GET
- handles gzipped response<commit_msg>Tested it live; it works, but only for registered domains. I've put up a notice<commit_after>== Google Contacts API

Fetch users' contact lists from your web application without asking them to
provide their passwords.

First, register[http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html]
your application's domain. Then make users follow this URL:

  Contacts::Gmail.authentication_url('http://mysite.com/invite')

They will authenticate on Google and it will send them back to the URL
provided. Google will add a token GET parameter to the query part of the URL.
Use that token in the next step:

  gmail = Contacts::Gmail.new('<EMAIL>', params[:token])
  contacts = gmail.contacts
  #-> [ ['Fitzgerald', '<EMAIL>', 'f<EMAIL>'],
        ['<NAME>', '<EMAIL>'], ...
        ]

Read more in Contacts::Gmail. I plan to support more APIs (Microsoft, etc);
feel free to contribute.

Author: <NAME> (<EMAIL>)

== Specdoc

Contacts::Gmail.authentication_url
- generates a URL for target with default parameters
- should handle boolean parameters
- skips parameters that have nil value

Contacts::Gmail
- should be set to query contacts from a specific account
- fetches contacts feed via HTTP GET
- handles gzipped response
{'fraction_non_alphanumeric': 0.0961864406779661, 'fraction_numerical': 0.0, 'mean_word_length': 4.29372197309417, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7335928', 'n_tokens_mistral': 673, 'n_tokens_neox': 657, 'n_words': 293}