<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -14,10 +14,10 @@ module Relax
       context.evaluate(&amp;block) if block_given?
     end
 
-    def execute(values, credentials, *args)
+    def execute(values, credentials, proxy, *args)
       args.unshift(values) if values
       instance = Instance.new(*args)
-      response = performer(instance, credentials).perform
+      response = performer(instance, credentials, proxy).perform
       context.parse(response)
     end
 
@@ -31,9 +31,9 @@ module Relax
     end
     private :url
 
-    def performer(instance, credentials)
+    def performer(instance, credentials, proxy)
       values = instance.values(context)
-      Performer.new(method, url, values, credentials)
+      Performer.new(method, url, values, credentials, proxy)
     end
     private :performer
 </diff>
      <filename>lib/relax/action.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,18 @@
 module Relax
   class Performer
-    def initialize(method, url, values, credentials)
+    def initialize(method, url, values, credentials, proxy)
       @method = method
       @url = url
       @values = values
       @credentials = credentials
+      @proxy = proxy
 
       parse_url_tokens
     end
 
     def perform
+      RestClient.proxy = @proxy if @proxy
+
       case @method
         when :delete, :get, :head then RestClient.send(@method, url)
         when :post, :put then RestClient.send(@method, url, query)
@@ -36,7 +39,9 @@ module Relax
     private :query
 
     def parse_url_tokens
-      @url_values = @url.scan(/(?:\:)([a-z_]+)/).flatten.inject({}) do |values, name|
+      tokens = @url.scan(/(?:\:)([a-z_]+)/).flatten
+
+      @url_values = tokens.inject({}) do |values, name|
         name = name.to_sym
         values[name] = @values.delete(name) if @values.key?(name)
         values</diff>
      <filename>lib/relax/performer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,6 +9,11 @@ module Relax
       self
     end
 
+    def proxy(url)
+      @proxy = url
+      self
+    end
+
     class &lt;&lt; self
       include Contextable
 
@@ -23,7 +28,7 @@ module Relax
           @actions[action.name] = action.name
 
           define_method(action.name) do |*args|
-            action.execute(@values, @credentials, *args)
+            action.execute(@values, @credentials, @proxy, *args)
           end
         else
           raise ArgumentError.new(&quot;Duplicate action '#{action.name}'.&quot;) </diff>
      <filename>lib/relax/service.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b49c56cedd70078a119cf955b103853c349e2f99</id>
    </parent>
  </parents>
  <author>
    <name>Tyler Hunt</name>
    <email>tyler@tylerhunt.com</email>
  </author>
  <url>http://github.com/tylerhunt/relax/commit/60300e939db23ace5892f6cfbc868c43702c2502</url>
  <id>60300e939db23ace5892f6cfbc868c43702c2502</id>
  <committed-date>2009-06-29T18:11:00-07:00</committed-date>
  <authored-date>2009-06-29T18:11:00-07:00</authored-date>
  <message>Added proxy support.</message>
  <tree>11238accf9f1fa582cba08787c34c1cdba5d6c4a</tree>
  <committer>
    <name>Tyler Hunt</name>
    <email>tyler@tylerhunt.com</email>
  </committer>
</commit>
