<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>spec/services/service_with_parameter_aliases.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -11,7 +11,7 @@ module Relax
     end
 
     def parameter(name, options={})
-      unless @parameters.find { |parameter| parameter.name == name }
+      unless @parameters.find { |parameter| parameter.named?(name) }
         @parameters &lt;&lt; Parameter.new(name, options)
       else
         raise ArgumentError.new(&quot;Duplicate parameter '#{name}'.&quot;)
@@ -19,14 +19,19 @@ module Relax
     end
 
     def set(name, value)
-      if parameter = @parameters.find { |parameter| parameter.name == name }
+      if parameter = @parameters.find { |parameter| parameter.named?(name) }
         parameter.value = value
       end
     end
 
     def parser(root, options={}, &amp;block) # :nodoc:
-      @parser ||= root.kind_of?(Class) ?  root.new(options, &amp;block) : 
-                                          Relief::Parser.new(root, options, &amp;block)
+      @parser ||= begin
+        if root.kind_of?(Class)
+          root.new(options, &amp;block)
+        else
+          Relief::Parser.new(root, options, &amp;block)
+        end
+      end
     end
 
     def parse(response) # :nodoc:</diff>
      <filename>lib/relax/context.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,12 +8,12 @@ module Relax
 
     def values(context)
       context.parameters.inject({}) do |values, parameter|
-        name = parameter.name
+        name = parameter.options[:as] || parameter.name
 
-        if value = @values[parameter.name] || parameter.value
+        if value = @values[name] || parameter.value
           values[parameter.name] = value
         elsif parameter.required?
-          raise ArgumentError.new(&quot;Missing value for '#{parameter.name}'.&quot;)
+          raise ArgumentError.new(&quot;Missing value for '#{name}'.&quot;)
         end
 
         values</diff>
      <filename>lib/relax/instance.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,10 @@ module Relax
       @options = options
     end
 
+    def named?(name)
+      name == (@options[:as] || @name)
+    end
+
     def value
       @value || @options[:default]
     end</diff>
      <filename>lib/relax/parameter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,13 @@
 require File.join(File.dirname(__FILE__), '..', 'spec_helper')
 
 describe Relax::Context do
-  
   it &quot;utilizes a custom parser for Class parsers&quot; do
     service = ServiceWithCustomParser.new
     service.test.should == 'parsed'
   end
-  
+
+  it &quot;allows parameters with aliases&quot; do
+    service = ServiceWithParameterAliases.new
+    service.test(:api_key =&gt; 'secret')[:stat].should == 'ok'
+  end
 end</diff>
      <filename>spec/relax/context_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,23 +1,19 @@
 class TestCustomParser
-  
   def initialize(options = {}, &amp;block)
   end
-  
+
   def parse(input)
     'parsed'
   end
-  
 end
 
 class ServiceWithCustomParser &lt; Relax::Service
   endpoint &quot;http://test.local/rest&quot; do
-
     action :test do
       parser TestCustomParser do
         element :status, :attribute =&gt; :stat
       end
     end
-
   end
 end
 </diff>
      <filename>spec/services/service_with_custom_parser.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,3 +11,4 @@ require 'fakeweb'
 require File.join(File.dirname(__FILE__), '..', 'lib', 'relax')
 require File.join(File.dirname(__FILE__), 'services', 'flickr')
 require File.join(File.dirname(__FILE__), 'services', 'service_with_custom_parser')
+require File.join(File.dirname(__FILE__), 'services', 'service_with_parameter_aliases')</diff>
      <filename>spec/spec_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>60300e939db23ace5892f6cfbc868c43702c2502</id>
    </parent>
  </parents>
  <author>
    <name>Tyler Hunt</name>
    <email>tyler@tylerhunt.com</email>
  </author>
  <url>http://github.com/tylerhunt/relax/commit/221af7ffd206ff75e57b8453b44b03013b6401cd</url>
  <id>221af7ffd206ff75e57b8453b44b03013b6401cd</id>
  <committed-date>2009-06-29T18:11:29-07:00</committed-date>
  <authored-date>2009-06-29T18:11:29-07:00</authored-date>
  <message>Added support for parameter name aliases.</message>
  <tree>de54d2cfc2a4c3b3b400e05b63b9f7ab73d4d51d</tree>
  <committer>
    <name>Tyler Hunt</name>
    <email>tyler@tylerhunt.com</email>
  </committer>
</commit>
