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