Module: URI

Defined in:
lib/overwrite.rb

Class Method Summary collapse

Class Method Details

.accessible?(uri) ⇒ Boolean

Returns checks if resource exists by making a HEAD-request.

Returns:

  • (Boolean)

    checks if resource exists by making a HEAD-request



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/overwrite.rb', line 126

def self.accessible?(uri)
  parsed_uri = URI.parse(uri + (OpenTox::RestClientWrapper.subjectid ? "?subjectid=#{CGI.escape OpenTox::RestClientWrapper.subjectid}" : ""))
  http_code = URI.task?(uri) ? 600 : 400
  http = Net::HTTP.new(parsed_uri.host, parsed_uri.port)
  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.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
rescue
  false
end

.ssl?(uri) ⇒ Boolean

Returns:

  • (Boolean)


121
122
123
# File 'lib/overwrite.rb', line 121

def self.ssl? uri
  URI.parse(uri).instance_of? URI::HTTPS
end

.task?(uri) ⇒ Boolean

Returns:

  • (Boolean)


152
153
154
# File 'lib/overwrite.rb', line 152

def self.task? uri
  uri =~ /task/ and URI.valid? uri
end

.valid?(uri) ⇒ Boolean

Returns:

  • (Boolean)


145
146
147
148
149
150
# File 'lib/overwrite.rb', line 145

def self.valid? uri
  u = URI.parse(uri)
  u.scheme!=nil and u.host!=nil
rescue URI::InvalidURIError
  false
end