class RoadForest::Resource::RDF::ReadOnly
Used for a resource that presents a read-only representation
Attributes
content_engine[RW]
interface[RW]
trace[RW]
Public Class Methods
register(method_name)
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 12 def self.register(method_name) RoadForest::Resource.registry.add(method_name, self) end
Public Instance Methods
content_types_provided()
click to toggle source
Calls superclass method
# File lib/roadforest/resource/read-only.rb, line 85 def content_types_provided content_engine.renderers.type_map rescue super end
error_data(status)
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 110 def error_data(status) @interface.error_data(status) end
expires()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 134 def expires @interface.expires end
finish_request()
click to toggle source
XXX Add cache-control headers here
# File lib/roadforest/resource/read-only.rb, line 104 def finish_request if (400..499).include? response.code set_error_body(response.code) end end
generate_etag()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 126 def generate_etag @interface.etag end
interface_supports(action)
click to toggle source
def known_methods
super + ["PATCH"]
end
# File lib/roadforest/resource/read-only.rb, line 55 def interface_supports(action) @interface.respond_to?(action) end
last_modified()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 130 def last_modified @interface.last_modified end
method(name)
click to toggle source
Calls superclass method
# File lib/roadforest/resource/read-only.rb, line 75 def method(name) if interface.nil? super else content_engine.fetch(name).method(:call) end rescue KeyError super end
params()
click to toggle source
RoadForest
interface
# File lib/roadforest/resource/read-only.rb, line 22 def params Application::Parameters.new do |params| params.path_info = @request.path_info params.query_params = @request.query params.path_tokens = @request.path_tokens end end
request_accept_header()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 34 def request_accept_header request.headers["Accept"] || "*/*" end
request_uri()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 30 def request_uri request.uri.to_s.sub(/[?]\Z/, '') end
required_grants(method)
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 91 def required_grants(method) @interface.required_grants(method) end
resource_exists?()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 122 def resource_exists? @interface.exists? end
response_body=(body)
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 42 def response_body=(body) response.body = body end
response_content_type=(type)
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 38 def response_content_type=(type) response.headers["Content-Type"] = type end
retrieve_interface()
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 46 def retrieve_interface absolutize(@interface.canonical_host, @interface.retrieve) end
Also aliased as: retreive_interface
send(*args)
click to toggle source
Overridden rather than metaprogram content type methods
Calls superclass method
# File lib/roadforest/resource/read-only.rb, line 65 def send(*args) if args.length == 1 and not interface.nil? content_engine.fetch(args.first).call(self) else super end rescue KeyError super end
set_error_body(status)
click to toggle source
# File lib/roadforest/resource/read-only.rb, line 114 def set_error_body(status) data= error_data(status) return "" if data.nil? renderer = content_engine.choose_renderer(request.headers["Accept"]) response.headers["Content-Type"] = renderer.type.content_type_header response.body = renderer.local_to_network(request_uri, data) end
trace?()
click to toggle source
Webmachine interface
# File lib/roadforest/resource/read-only.rb, line 60 def trace? !!@trace end