From e6988ef2ce31553c9c5f52a8d34899e39df67694 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Thu, 21 Dec 2006 22:12:21 +0000 Subject: Subclasses share superclass site until explicitly set. This way you can set Superclass.site = ... after subclasses have been defined. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5767 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activeresource/lib/active_resource/base.rb | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'activeresource/lib/active_resource') diff --git a/activeresource/lib/active_resource/base.rb b/activeresource/lib/active_resource/base.rb index fd583d40e9..9a810e4adf 100644 --- a/activeresource/lib/active_resource/base.rb +++ b/activeresource/lib/active_resource/base.rb @@ -6,13 +6,14 @@ module ActiveResource # calls. cattr_accessor :logger - def self.inherited(base) - base.site = site.to_s if site - super - end - class << self - attr_reader :site + def site + if defined?(@site) + @site + elsif superclass != Object and superclass.site + superclass.site.dup.freeze + end + end def site=(site) @site = create_site_uri_from(site) @@ -83,13 +84,9 @@ module ActiveResource def find_single(scope, options) new(connection.get(element_path(scope, options)), options) end - + def create_site_uri_from(site) - returning site.is_a?(URI) ? site : URI.parse(site) do |uri| - def uri.<<(extra) - path << extra - end unless uri.respond_to?(:<<) - end + site.is_a?(URI) ? site.dup : URI.parse(site) end end -- cgit v1.2.3