From 354aaa649e9eeed5d81793e09d9714b45063c147 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 8 Feb 2012 13:14:11 +0100 Subject: toxbank-investigation compatible version --- lib/overwrite.rb | 155 ------------------------------------------------------- 1 file changed, 155 deletions(-) delete mode 100644 lib/overwrite.rb (limited to 'lib/overwrite.rb') diff --git a/lib/overwrite.rb b/lib/overwrite.rb deleted file mode 100644 index d541b61..0000000 --- a/lib/overwrite.rb +++ /dev/null @@ -1,155 +0,0 @@ -require 'uri' -=begin -# class overwrites aka monkey patches -# hack: store sinatra instance in global var $url_provider to make url_for and halt methods accessible -before { - raise "should not happen, url provider already differently initialized "+ - $url_provider.request.host.to_s+" != "+self.request.host.to_s if - $url_provider and $url_provider.request.host!=self.request.host and - $url_provider.request.script_name!=self.request.script_name - $url_provider = self - # stupid internet explorer does not ask for text/html, add this manually - request.env['HTTP_ACCEPT'] += ";text/html" if request.env["HTTP_USER_AGENT"]=~/MSIE/ - request.env['HTTP_ACCEPT']=request.params["media"] if request.params["media"] -} - -# Error handling -# Errors are logged as error and formated according to acccept-header -# Non OpenTox::Errors (defined in error.rb) are handled as internal error (500), stacktrace is logged -# IMPT: set sinatra settings :show_exceptions + :raise_errors to false in config.ru, otherwise Rack::Showexceptions takes over -error Exception do - error = request.env['sinatra.error'] - # log error message and backtrace to logfile - LOGGER.error error.class.to_s+": "+error.message - LOGGER.error ":\n"+error.backtrace.join("\n") - - actor = "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}#{request.env['REQUEST_URI']}" - rep = OpenTox::ErrorReport.create(error, actor) - - case request.env['HTTP_ACCEPT'] - when /rdf/ - content_type 'application/rdf+xml' - halt error.http_code,rep.to_rdfxml - when /html/ - content_type 'text/html' - halt error.http_code,(OpenTox.text_to_html rep.to_yaml, @subjectid) - else - content_type 'application/x-yaml' - halt error.http_code,rep.to_yaml - end -end - -class Sinatra::Base - - def return_task( task ) - raise "http_code == nil" unless task.http_code!=nil - case request.env['HTTP_ACCEPT'] - when /rdf/ - response['Content-Type'] = "application/rdf+xml" - halt task.http_code,task.to_rdfxml - when /yaml/ - response['Content-Type'] = "application/x-yaml" - halt task.http_code,task.to_yaml # PENDING differs from task-webservice - when /html/ - response['Content-Type'] = "text/html" - halt task.http_code,OpenTox.text_to_html(task.to_yaml, @subjectid) - else # default /uri-list/ - response['Content-Type'] = "text/uri-list" - if task.completed? - halt task.http_code,task.resultURI+"\n" - else - halt task.http_code,task.uri+"\n" - end - end - end -end -=end - -class String - def task_uri? - self.uri? && !self.match(/task/).nil? - end - - def dataset_uri? - self.uri? && !self.match(/dataset/).nil? - end - - def self.model_uri? - self.uri? && !self.match(/model/).nil? - end - - def uri? - begin - u = URI::parse(self) - return (u.scheme!=nil and u.host!=nil) - rescue URI::InvalidURIError - return false - end - end - - def underscore - self.gsub(/::/, '/'). - gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). - gsub(/([a-z\d])([A-Z])/,'\1_\2'). - tr("-", "_"). - downcase - end -end - -require 'logger' -# logging -#class Logger -class OTLogger < Logger - - def pwd - path = Dir.pwd.to_s - index = path.rindex(/\//) - return path if index==nil - path[(index+1)..-1] - end - - def trace() - lines = caller(0) - n = 2 - line = lines[n] - - while (line =~ /spork.rb/ or line =~ /create/ or line =~ /overwrite.rb/) - n += 1 - line = lines[n] - end - - index = line.rindex(/\/.*\.rb/) - return line if index==nil - line[index..-1] - end - - def format(msg) - pwd.ljust(18)+" :: "+msg.to_s+" :: "+trace - end - - def debug(msg) - super format(msg) - end - - def info(msg) - super format(msg) - end - - def warn(msg) - super format(msg) - end - - def error(msg) - super format(msg) - end - -end - -# make migration from datamapper more straightforward -=begin -class Ohm::Model - def self.get(id) - self[id] - end -end -=end -- cgit v1.2.3