Module: URI

Defined in:
lib/overwrite.rb

Class Method Summary collapse

Class Method Details

.accessible?(uri) ⇒ TrueClass, FalseClass

Check if a http resource exists by making a HEAD-request

Returns:

  • (TrueClass, FalseClass)


177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/overwrite.rb', line 177

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) ⇒ TrueClass, FalseClass

Is it a https connection

Parameters:

Returns:

  • (TrueClass, FalseClass)


171
172
173
# File 'lib/overwrite.rb', line 171

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

.task?(uri) ⇒ Boolean

Is the URI a task URI

Parameters:

Returns:

  • (Boolean)


208
209
210
# File 'lib/overwrite.rb', line 208

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

.valid?(uri) ⇒ TrueClass, FalseClass

Is the URI valid

Parameters:

Returns:

  • (TrueClass, FalseClass)


199
200
201
202
203
204
# File 'lib/overwrite.rb', line 199

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