<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -20,6 +20,7 @@ lib/graticule/geocoder/geocoder_us.rb
 lib/graticule/geocoder/google.rb
 lib/graticule/geocoder/host_ip.rb
 lib/graticule/geocoder/local_search_maps.rb
+lib/graticule/geocoder/mapquest.rb
 lib/graticule/geocoder/meta_carta.rb
 lib/graticule/geocoder/multi.rb
 lib/graticule/geocoder/multimap.rb
@@ -50,6 +51,8 @@ test/fixtures/responses/host_ip/unknown.txt
 test/fixtures/responses/local_search_maps/empty.txt
 test/fixtures/responses/local_search_maps/not_found.txt
 test/fixtures/responses/local_search_maps/success.txt
+test/fixtures/responses/mapquest/multi_result.xml
+test/fixtures/responses/mapquest/success.xml
 test/fixtures/responses/meta_carta/bad_address.xml
 test/fixtures/responses/meta_carta/multiple.xml
 test/fixtures/responses/meta_carta/success.xml
@@ -71,6 +74,7 @@ test/unit/graticule/geocoder/geocoders.rb
 test/unit/graticule/geocoder/google_test.rb
 test/unit/graticule/geocoder/host_ip_test.rb
 test/unit/graticule/geocoder/local_search_maps_test.rb
+test/unit/graticule/geocoder/mapquest_test.rb
 test/unit/graticule/geocoder/meta_carta_test.rb
 test/unit/graticule/geocoder/multi_test.rb
 test/unit/graticule/geocoder/multimap_test.rb</diff>
      <filename>Manifest.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,16 @@
 module Graticule #:nodoc:
   module Geocoder #:nodoc:
 
+    # Mapquest requires both a client id and a password, which you can
+    # get by registering at:
+    # http://developer.mapquest.com/Home/Register?_devAPISignup_WAR_devAPISignup_action=signup&amp;_devAPISignup_WAR_devAPISignup_clientType=Developer
+    #
+    # mq = Graticule.service(:mapquest).new(CLIENT_ID, PASSWORD)
+    # location = gg.locate('44 Allen Rd., Lovell, ME 04051') 
+    # [42.78942, -86.104424]
+    #
     class Mapquest &lt; Rest 
+      # I would link to the documentation here, but there is none that will do anything but confuse you.
 
       PRECISION = {
         'L1' =&gt; :address,
@@ -19,9 +28,10 @@ module Graticule #:nodoc:
         'A1' =&gt; :country
       }
 
-      def initialize(key)
-        @key = key
-        @url = URI.parse('http://geocode.web.mapquest.com/mq/mqserver.dll')
+      def initialize(client_id, password)
+        @password = password
+        @client_id = client_id
+        @url = URI.parse('http://geocode.dev.mapquest.com/mq/mqserver.dll')
       end
 
       # Locates +address+ returning a Location
@@ -32,13 +42,8 @@ module Graticule #:nodoc:
       protected
 
       def make_url(params) #:nodoc
-        query = 'e=5'
-        query += '&amp;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;ISO-8859-1\&quot;?&gt;'
-        query += '&lt;Geocode Version=&quot;1&quot;&gt;&lt;Address&gt;'
-        query += '&lt;Street&gt;217 Union St., 11231&lt;/Street&gt;'
-        query += '&lt;/Address&gt;&lt;GeocodeOptionsCollection Count=&quot;0&quot;/&gt;'
-        query += '&lt;Authentication Version=&quot;2&quot;&gt;&lt;Password&gt;9ASwEx7V&lt;/Password&gt;&lt;ClientId&gt;6713&lt;/ClientId&gt;&lt;/Authentication&gt;'
-        query += '&lt;/Geocode&gt;'
+        query = &quot;e=5&amp;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;ISO-8859-1\&quot;?&gt;&lt;Geocode Version=\&quot;1\&quot;&gt; \
+          #{address_string(params[:q])}#{authentication_string}&lt;/Geocode&gt;&quot;
         url = @url.dup
         url.query = URI.escape(query)
         url
@@ -69,6 +74,14 @@ module Graticule #:nodoc:
       def value(element)
         element.value if element
       end
+
+      def authentication_string
+        &quot;&lt;Authentication Version=\&quot;2\&quot;&gt;&lt;Password&gt;#{@password}&lt;/Password&gt;&lt;ClientId&gt;#{@client_id}&lt;/ClientId&gt;&lt;/Authentication&gt;&quot;
+      end
+
+      def address_string(query)
+        &quot;&lt;Address&gt;&lt;Street&gt;#{query}&lt;/Street&gt;&lt;/Address&gt;&lt;GeocodeOptionsCollection Count=\&quot;0\&quot;/&gt;&quot;
+      end
     end
   end
 end</diff>
      <filename>lib/graticule/geocoder/mapquest.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4234ba7637b912512b28e2c3279fad38cb0d2194</id>
    </parent>
  </parents>
  <author>
    <name>Aubrey Holland</name>
    <email>aubrey@gmail.com</email>
  </author>
  <url>http://github.com/collectiveidea/graticule/commit/818867bcc76fba64fddb850daf11057253357f16</url>
  <id>818867bcc76fba64fddb850daf11057253357f16</id>
  <committed-date>2009-07-14T14:17:44-07:00</committed-date>
  <authored-date>2009-07-14T14:17:44-07:00</authored-date>
  <message>last tweaks for the mapquest stuff</message>
  <tree>77dd6d4b002f2cc530012e6b9caaf622bc1967cd</tree>
  <committer>
    <name>Aubrey Holland</name>
    <email>aubrey@gmail.com</email>
  </committer>
</commit>
