<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -9,22 +9,21 @@ Example
 
 Add this line to your app's User model:
 
-matches_identities
+  matches_identities :nickname_field =&gt; 'username', :email_field =&gt; 'work_email'
 
 and your user model will gain the following methods:
 
-User.match_gmail(username, password)
-User.match_gmail_api(authsub_token)
-User.match_twitter(nick)
-User.match_hcard(url)
-etc...
+  User.match_gmail(username, password)
+  User.match_gmail_api(authsub_token)
+  User.match_twitter(nick)
+  User.match_hcard(url)
+  etc...
 
 The return value is a two-element list. The first element is a list of User objects that match the identities found in the external source. The second element, if available for that mode of matching, is a list of found external identities that weren't matched, giving their name and email address in a hash.
 
-Restrictions
-============
-
-The code assumes that your user model uses the field 'email' for email address and 'nick' for screen name. A future version will parameterise this.
+The default values for matches_identities are:
+  :nickname_field =&gt; 'nick'
+  :email_field =&gt; 'email'
 
 Contributing
 ============</diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,8 @@ module IdentityMatcher
                 # add class and istance methods
                 cattr_accessor :im_options
                 self.im_options = options
+                self.im_options[:nickname_field]  ||= :nick
+                self.im_options[:email_field]     ||= :email
 
          class_eval &lt;&lt;-END
            include IdentityMatcher::Methods::InstanceMethods    
@@ -73,7 +75,7 @@ module IdentityMatcher
                 nicks = nicks.map { |nick| nick.gsub(/(^&quot;|&quot;$)/,&quot;&quot;) }
                 names = names.map { |name| name.gsub(/(^&quot;|&quot;$)/,&quot;&quot;) }
                 results = []
-                results += self.find_all_by_nick(nicks)
+                results += self.send(&quot;find_all_by_#{self.im_options[:nickname_field]}&quot;, nicks)
                 results = results.select { |x| names.include?(x.name) }.uniq
 
                 urls = nicks.map { |nick| &quot;http://&quot; + nick + &quot;.livejournal.com/&quot; }
@@ -167,7 +169,7 @@ module IdentityMatcher
                         }
                     }
                 end
-                users = self.find_all_by_email(contacts.map { |c| c[:email] }).uniq
+                users = self.send(&quot;find_all_by_#{self.im_options[:email_field]}&quot;, contacts.map { |c| c[:email] }).uniq
                 emails = users.map(&amp;:email).uniq
                 names = users.map(&amp;:name).uniq
                 unused = []
@@ -212,7 +214,7 @@ module IdentityMatcher
                     end
                 }
 
-                users = self.find_all_by_email(contacts.map { |contact| contact[&quot;address&quot;] }).uniq
+                users = self.send(&quot;find_all_by_#{self.im_options[:email_field]}&quot;, contacts.map { |contact| contact[&quot;address&quot;] }).uniq
                 emails = users.map(&amp;:email)
                 names = users.map(&amp;:name)
                 unused_contacts = contacts.select { |contact| 
@@ -262,7 +264,7 @@ module IdentityMatcher
                     end
                 end
 
-                users = self.find_all_by_email(contacts.map { |contact| contact[&quot;address&quot;] }).uniq
+                users = self.send(&quot;find_all_by_#{self.im_options[:email_field]}&quot;, contacts.map { |contact| contact[&quot;address&quot;] }).uniq
                 emails = users.map(&amp;:email)
                 names = users.map(&amp;:name)
                 unused_contacts = contacts.select { |contact| 
@@ -280,7 +282,7 @@ module IdentityMatcher
                 end
                 gmail = GMailer.connect(username, password)
                 contacts = gmail.fetch(:contact =&gt; &quot;all&quot;)
-                users = self.find_all_by_email(contacts.map(&amp;:email)).uniq
+                users = self.send(&quot;find_all_by_#{self.im_options[:email_field]}&quot;, contacts.map(&amp;:email)).uniq
                 emails = users.map(&amp;:email)
                 names = users.map(&amp;:name)
                 unused_contacts = contacts.select { |contact| 
@@ -319,7 +321,7 @@ module IdentityMatcher
                 users += Openid.find_all_by_url(urls).map { |openid| openid.traveller }
                 users += Openid.find_all_by_url(urls.map { |url| url + &quot;/&quot; }).map { |openid| openid.traveller }
                 users += self.find_all_by_twitternick(twitternicks.uniq)
-                users += self.find_all_by_email(emails)
+                users += self.send(&quot;find_all_by_#{self.im_options[:email_field]}&quot;, emails)
                 return [users.uniq, []]
             end
 
@@ -380,7 +382,7 @@ module IdentityMatcher
                         hcard.url
                 }.flatten
 
-                results = self.find_all_by_email(emails)
+                results = self.send(&quot;find_all_by_#{self.im_options[:email_field]}&quot;, emails)
                 if sha1sums.size &gt; 0
                     results += self.find(:all, :conditions =&gt; [ 'sha1(concat(&quot;mailto:&quot;, email)) IN (?)', sha1sums ] )
                 end
@@ -417,7 +419,7 @@ module IdentityMatcher
                     hcard.fn
                 }
                 results = []
-                results += self.find_all_by_nick(nicks)
+                results += self.send(&quot;find_all_by_#{self.im_options[:nickname_field]}&quot;, nicks)
                 results = results.select { |x| names.include?(x.name) }.uniq
                 return [results, []]
             end</diff>
      <filename>lib/identity_matcher.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>72e66b7559b1cfc3ea3d17971c5b554dbef2a512</id>
    </parent>
  </parents>
  <author>
    <name>Justin Halsall</name>
    <email>justin@JuicyBook.lan</email>
  </author>
  <url>http://github.com/mattb/identity-matcher/commit/a51b601100b2a964bb9fe91f83e0fd50cf887768</url>
  <id>a51b601100b2a964bb9fe91f83e0fd50cf887768</id>
  <committed-date>2008-10-27T06:30:07-07:00</committed-date>
  <authored-date>2008-10-27T06:30:07-07:00</authored-date>
  <message>you can now specify what columns will be used for nick and email</message>
  <tree>c7e5cbee99cc78796d4b5bd4f69db80009cc823e</tree>
  <committer>
    <name>Justin Halsall</name>
    <email>justin@JuicyBook.lan</email>
  </committer>
</commit>
