summaryrefslogtreecommitdiff
path: root/lib/overwrite.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-03-07 17:13:48 +0000
committerChristoph Helma <helma@in-silico.ch>2012-03-07 17:13:48 +0000
commit2f6d5c75fc1fece5fc10cc7c45ad59cf6b820d64 (patch)
treef3fdad09917e6ba537d049215221545709d721fd /lib/overwrite.rb
parent8fc11578aadcf1e7d152764c926e12e553bd8d65 (diff)
error and dataset tests added, wait_for_task moved to URI.to_object
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r--lib/overwrite.rb27
1 files changed, 25 insertions, 2 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb
index f0dcda9..c7a1d43 100644
--- a/lib/overwrite.rb
+++ b/lib/overwrite.rb
@@ -23,8 +23,13 @@ module URI
end
def self.accessible? uri, subjectid=nil
- Net::HTTP.get_response(URI.parse(uri))
- true
+ if URI.task? uri
+ # just ry to get a response, valid tasks may return codes > 400
+ Net::HTTP.get_response(URI.parse(uri))
+ true
+ else
+ Net::HTTP.get_response(URI.parse(uri)).code.to_i < 400
+ end
rescue
false
end
@@ -36,5 +41,23 @@ module URI
false
end
+ def self.to_object uri, wait=true
+
+ # TODO add waiting task
+ if task? uri and wait
+ t = OpenTox::Task.new(uri)
+ t.wait
+ uri = t.resultURI
+ end
+
+ klass =
+ subjectid ? eval("#{self}.new(\"#{uri}\", #{subjectid})") : eval("#{self}.new(\"#{uri}\")")
+ end
+
end
+class File
+ def mime_type
+ `file -ib #{self.path}`.chomp
+ end
+end