Modified: trunk/lib/rest.rb (3018 => 3019)
--- trunk/lib/rest.rb 2012-06-06 16:59:41 UTC (rev 3018)
+++ trunk/lib/rest.rb 2012-06-08 09:55:32 UTC (rev 3019)
@@ -114,9 +114,13 @@
{ :xml => doc.to_s, :status => "#{code} #{message}" }
end
-def resource_preview_url(ob, type)
+def resource_preview_url(ob, type, query)
url = ""
- url.path << "/versions/#{ob.current_version}" if ob.respond_to?('current_version')
+ if query["version"]
+ url.path << "/versions/#{query["version"]}"
+ elsif ob.respond_to?('current_version')
+ url.path << "/versions/#{ob.current_version}"
+ end
url.path << "/previews/#{type}"
url.to_s
end
@@ -227,7 +231,7 @@
list_element << el
else
- el = rest_get_request_aux(list_element_item, user, query.merge({ "id" => list_element_item.id.to_s }), list_item_select_elements)
+ el = rest_get_request_aux(list_element_item, user, query.merge({ "id" => list_element_item.id.to_s, "version" => nil }), list_item_select_elements)
# hack to workaround an inconsistency in the established API
@@ -291,7 +295,7 @@
if model_data['Encoding'][i] == 'preview'
- text = resource_preview_url(ob, model_data['Accessor'][i])
+ text = resource_preview_url(ob, model_data['Accessor'][i], query)
else
@@ -349,6 +353,8 @@
version = ob.version.to_s if ob.respond_to?(:versioned_resource)
+ version = query["version"] if query["version"]
+
entity['uri' ] = uri if uri && query["show-uri"] != "no"
entity['resource'] = resource if resource && query["show-resource"] != "no"
entity['version' ] = version if version && query["show-version"] != "no"