summaryrefslogtreecommitdiff
path: root/lib/overwrite.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r--lib/overwrite.rb24
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb
index fbe8f7d..b2382e0 100644
--- a/lib/overwrite.rb
+++ b/lib/overwrite.rb
@@ -28,6 +28,14 @@ class String
downcase
end
+ # convert strings to boolean values
+ # @return [TrueClass,FalseClass] true or false
+ def to_boolean
+ return true if self == true || self =~ (/(true|t|yes|y|1)$/i)
+ return false if self == false || self.nil? || self =~ (/(false|f|no|n|0)$/i)
+ bad_request_error "invalid value for Boolean: \"#{self}\""
+ end
+
# encloses URI in text with with link tag
# @return [String] new text with marked links
def link_urls
@@ -77,11 +85,11 @@ module URI
end
def self.dataset? uri, subjectid=nil
- uri =~ /dataset/ and URI.accessible? uri, subjectid=nil
+ uri =~ /dataset/ and URI.accessible? uri, subjectid
end
def self.model? uri, subjectid=nil
- uri =~ /model/ and URI.accessible? uri, subjectid=nil
+ uri =~ /model/ and URI.accessible? uri, subjectid
end
def self.ssl? uri, subjectid=nil
@@ -92,17 +100,13 @@ module URI
def self.accessible?(uri, subjectid=nil)
parsed_uri = URI.parse(uri + (subjectid ? "?subjectid=#{CGI.escape subjectid}" : ""))
http_code = URI.task?(uri) ? 600 : 400
- unless (URI.ssl? uri) == true
- http = Net::HTTP.new(parsed_uri.host, parsed_uri.port)
- request = Net::HTTP::Head.new(parsed_uri.request_uri)
- http.request(request).code.to_i < http_code
- else
- http = Net::HTTP.new(parsed_uri.host, parsed_uri.port)
+ http = Net::HTTP.new(parsed_uri.host, parsed_uri.port)
+ if (URI.ssl? uri) == true
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
- request = Net::HTTP::Head.new(parsed_uri.request_uri)
- http.request(request).code.to_i < http_code
end
+ request = Net::HTTP::Head.new(parsed_uri.request_uri)
+ http.request(request).code.to_i < http_code
rescue
false
end