summaryrefslogtreecommitdiff
path: root/lib/overwrite.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-02-23 17:56:46 +0000
committerChristoph Helma <helma@in-silico.ch>2012-02-23 17:56:46 +0000
commitfa9069e13fb6b1c8bb4ebcdf82f1cf1c04ad71ca (patch)
treeefe8bff6c3538c856805cadac832531aa6b0821e /lib/overwrite.rb
parentb651c4d199a7b4d6a06cdefb281601bddd2fc885 (diff)
(partially) switched back to RestClientWrapper
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r--lib/overwrite.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb
new file mode 100644
index 0000000..e883d45
--- /dev/null
+++ b/lib/overwrite.rb
@@ -0,0 +1,39 @@
+class String
+ 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
+
+module URI
+
+ def self.task? uri
+ uri =~ /task/ and URI.valid? uri
+ end
+
+ def self.dataset? uri, subjectid=nil
+ uri =~ /dataset/ and URI.accessible? uri, subjectid=nil
+ end
+
+ def self.model? uri, subjectid=nil
+ uri =~ /model/ and URI.accessible? uri, subjectid=nil
+ end
+
+ def self.accessible? uri, subjectid=nil
+ Net::HTTP.get_response(URI.parse(uri))
+ true
+ rescue
+ false
+ end
+
+ def self.valid? uri
+ u = URI::parse(uri)
+ u.scheme!=nil and u.host!=nil
+ rescue URI::InvalidURIError
+ false
+ end
+end
+