aboutsummaryrefslogtreecommitdiffstats
path: root/activeresource/lib/active_resource/base.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-08-09 18:39:44 +0100
committerPratik Naik <pratiknaik@gmail.com>2009-08-09 18:39:44 +0100
commit2e50110eac439f3d5d292f1519ae7c79991eb91a (patch)
tree5ba10ebd6ddf0a7487754798993d3862ee9ec3b3 /activeresource/lib/active_resource/base.rb
parenta7f09bc12236d9e7bdc2ee34d5fe3c782d6ad385 (diff)
parentbb1e1776914edf3be7e46b55036c18a64595f919 (diff)
downloadrails-2e50110eac439f3d5d292f1519ae7c79991eb91a.tar.gz
rails-2e50110eac439f3d5d292f1519ae7c79991eb91a.tar.bz2
rails-2e50110eac439f3d5d292f1519ae7c79991eb91a.zip
Merge commit 'mainstream/master'
Diffstat (limited to 'activeresource/lib/active_resource/base.rb')
-rw-r--r--activeresource/lib/active_resource/base.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/activeresource/lib/active_resource/base.rb b/activeresource/lib/active_resource/base.rb
index bc82139dac..9db35881b8 100644
--- a/activeresource/lib/active_resource/base.rb
+++ b/activeresource/lib/active_resource/base.rb
@@ -257,6 +257,22 @@ module ActiveResource
end
end
+ # Gets the \proxy variable if a proxy is required
+ def proxy
+ # Not using superclass_delegating_reader. See +site+ for explanation
+ if defined?(@proxy)
+ @proxy
+ elsif superclass != Object && superclass.proxy
+ superclass.proxy.dup.freeze
+ end
+ end
+
+ # Sets the URI of the http proxy to the value in the +proxy+ argument.
+ def proxy=(proxy)
+ @connection = nil
+ @proxy = proxy.nil? ? nil : create_proxy_uri_from(proxy)
+ end
+
# Gets the \user for REST HTTP authentication.
def user
# Not using superclass_delegating_reader. See +site+ for explanation
@@ -332,6 +348,7 @@ module ActiveResource
def connection(refresh = false)
if defined?(@connection) || superclass == Object
@connection = Connection.new(site, format) if refresh || @connection.nil?
+ @connection.proxy = proxy if proxy
@connection.user = user if user
@connection.password = password if password
@connection.timeout = timeout if timeout
@@ -622,6 +639,11 @@ module ActiveResource
site.is_a?(URI) ? site.dup : URI.parse(site)
end
+ # Accepts a URI and creates the proxy URI from that.
+ def create_proxy_uri_from(proxy)
+ proxy.is_a?(URI) ? proxy.dup : URI.parse(proxy)
+ end
+
# contains a set of the current prefix parameters.
def prefix_parameters
@prefix_parameters ||= prefix_source.scan(/:\w+/).map { |key| key[1..-1].to_sym }.to_set