diff options
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r-- | lib/overwrite.rb | 24 |
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 |