summaryrefslogtreecommitdiff
path: root/lib/error.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2013-03-26 10:56:04 +0100
committerChristoph Helma <helma@in-silico.ch>2013-03-26 10:56:04 +0100
commita54db46684680d98311631804eca367cc949a715 (patch)
tree283b8c5f256e8605131cbfeae2217a77d0288ca7 /lib/error.rb
parent4ba2cc9849473f97baf75195bb36c5057f1c58d4 (diff)
code cleanup and refactoring.
Diffstat (limited to 'lib/error.rb')
-rw-r--r--lib/error.rb30
1 files changed, 17 insertions, 13 deletions
diff --git a/lib/error.rb b/lib/error.rb
index 4fed343..eb72144 100644
--- a/lib/error.rb
+++ b/lib/error.rb
@@ -5,17 +5,19 @@ module OpenToxError
attr_accessor :http_code, :uri
def initialize message, uri=nil
super message
- @uri = uri.to_s.sub(%r{//.*:.*@},'//') # remove credentials from uri
- @http_code ||= 500
- @rdf = RDF::Graph.new
- subject = RDF::Node.new
- @rdf << [subject, RDF.type, RDF::OT.ErrorReport]
- @rdf << [subject, RDF::OT.actor, @uri]
- @rdf << [subject, RDF::OT.message, message.to_s]
- @rdf << [subject, RDF::OT.statusCode, @http_code]
- @rdf << [subject, RDF::OT.errorCode, self.class.to_s]
- @rdf << [subject, RDF::OT.errorCause, short_backtrace]
- $logger.error("\n"+self.to_turtle)
+ #unless self.is_a? Errno::EAGAIN # avoid "Resource temporarily unavailable" errors
+ @uri = uri.to_s.sub(%r{//.*:.*@},'//') # remove credentials from uri
+ @http_code ||= 500
+ @rdf = RDF::Graph.new
+ subject = RDF::Node.new
+ @rdf << [subject, RDF.type, RDF::OT.ErrorReport]
+ @rdf << [subject, RDF::OT.actor, @uri]
+ @rdf << [subject, RDF::OT.message, message.sub(/^"/,'').sub(/"$/,'')]
+ @rdf << [subject, RDF::OT.statusCode, @http_code]
+ @rdf << [subject, RDF::OT.errorCode, self.class.to_s]
+ @rdf << [subject, RDF::OT.errorCause, short_backtrace]
+ $logger.error("\n"+self.to_turtle)
+ #end
end
def short_backtrace
@@ -40,13 +42,14 @@ module OpenToxError
prefixes = {:rdf => "http://www.w3.org/1999/02/22-rdf-syntax-ns#"}
['OT', 'DC', 'XSD', 'OLO'].each{|p| prefixes[p.downcase.to_sym] = eval("RDF::#{p}.to_s") }
RDF::N3::Writer.for(:turtle).buffer(:prefixes => prefixes) do |writer|
- @rdf.each{|statement| writer << statement}
+ @rdf.each{|statement| writer << statement} if @rdf
end
end
end
class RuntimeError
+#class StandardError
include OpenToxError
end
@@ -58,6 +61,7 @@ end
module OpenTox
class Error < RuntimeError
+ include OpenToxError
def initialize code, message, uri=nil
@http_code = code
@@ -77,7 +81,7 @@ module OpenTox
# define global methods for raising errors, eg. bad_request_error
Object.send(:define_method, error[:method]) do |message,uri=nil|
- raise c.new(message, uri)
+ raise c.new(message.inspect, uri)
end
end