CruGlobal/mpdx — pull request #157 by draffensperger (2014-10-01 00:15:52+00:00)
Title: MPDX-183 Google Contacts Sync

Implements a two-way sync to/from MPDX and Google Contacts. For simple fields it has MPDX win in a conflict, and for array type files (emails, addresses, etc.) it propagates changes as a series of creates and deletes and propagates both deletes and updates to/from MPDX and Google. So a conflicting update would result in a delete of the old value and both systems having the two new values.

There is some logic to only sync updated Google Contacts and MPDX records after the first sync. The goal of that is to make the sync fast enough for it to be run regularly for all users.

I did a lot of updates to the `google_contacts_api` gem to get this to work. I plan to suggest them as a pull request back to the gem author at some point (he merged an earlier pull for the google import feature).

There are still a couple things to iron out, but this is getting close.