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)


183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# File 'lib/overwrite.rb', line 183

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)


177
178
179
# File 'lib/overwrite.rb', line 177

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

.task?(uri) ⇒ Boolean

Is the URI a task URI

Parameters:

Returns:

  • (Boolean)


214
215
216
# File 'lib/overwrite.rb', line 214

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

.valid?(uri) ⇒ TrueClass, FalseClass

Is the URI valid

Parameters:

Returns:

  • (TrueClass, FalseClass)


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

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