lib/recurly/resource.rb in recurly-2.2.6 vs lib/recurly/resource.rb in recurly-2.3.0

- old
+ new

@@ -1,7 +1,6 @@ require 'date' -require 'erb' module Recurly # The base class for all Recurly resources (e.g. {Account}, {Subscription}, # {Transaction}). # @@ -183,11 +182,10 @@ # @param uuid [String, nil] # @example # Recurly::Account.member_path "code" # => "accounts/code" # Recurly::Account.member_path nil # => "accounts" def member_path uuid - uuid = ERB::Util.url_encode(uuid) if uuid [collection_path, uuid].compact.join '/' end # @return [Array] Per attribute, defines readers, writers, boolean and # change-tracking methods. @@ -319,12 +317,13 @@ if uuid.nil? # Should we raise an ArgumentError, instead? raise NotFound, "can't find a record with nil identifier" end + uri = uuid =~ /^http/ ? uuid : member_path(uuid) begin - from_response API.get(member_path(uuid), {}, options) + from_response API.get(uri, {}, options) rescue API::NotFound => e raise NotFound, e.description end end @@ -557,15 +556,12 @@ def reload response = nil if response return if response.body.to_s.length.zero? fresh = self.class.from_response response else - options = {:etag => (etag unless changed?)} - fresh = if @href - self.class.from_response API.get(@href, {}, options) - else - self.class.find(to_param, options) - end + fresh = self.class.find( + @href || to_param, :etag => (etag unless changed?) + ) end fresh and copy_from fresh persist! true self rescue API::NotModified