diff options
author | Christoph Helma <helma@in-silico.ch> | 2012-03-02 19:04:02 +0000 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2012-03-02 19:04:02 +0000 |
commit | a5f8c658ba87a00950766182966b65c65d5e2b66 (patch) | |
tree | f9dc0407178fa4a0c9a2c5a0de2add0b6883da55 /lib/error.rb | |
parent | 53fe462b9c310bc84df50d058500772b7f3cbc3c (diff) |
additional OpenTox errors, *_error methods in rest-client-wrapper
Diffstat (limited to 'lib/error.rb')
-rw-r--r-- | lib/error.rb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/error.rb b/lib/error.rb index 8368404..29f4234 100644 --- a/lib/error.rb +++ b/lib/error.rb @@ -19,20 +19,28 @@ module OpenTox end end - # create error classes dynamically + # OpenTox errors { "BadRequestError" => 400, "NotAuthorizedError" => 401, "NotFoundError" => 404, "ServiceUnavailableError" => 503, "TimeOutError" => 504, + "LockedError" => 423, + "NotImplementedError" => 501, }.each do |klass,code| + # create error classes c = Class.new Error do define_method :initialize do |message| super code, message end end OpenTox.const_set klass,c + + # define global methods for raising errors, eg. bad_request_error + Object.send(:define_method, klass.underscore.to_sym) do |message| + raise c.new message + end end # Errors received from RestClientWrapper calls @@ -88,7 +96,7 @@ module OpenTox # define to_ and self.from_ methods for various rdf formats [:rdfxml,:ntriples].each do |format| - define_singleton_method ("from_#{format}").to_sym do |rdf| + define_singleton_method "from_#{format}".to_sym do |rdf| report = ErrorReport.new RDF::Reader.for(format).new(rdf) do |reader| reader.each_statement{ |statement| report.rdf << statement } @@ -96,7 +104,7 @@ module OpenTox report end - send :define_method, ("to_#{format}").to_sym do + send :define_method, "to_#{format}".to_sym do rdfxml = RDF::Writer.for(format).buffer do |writer| @rdf.each{|statement| writer << statement} end |