module Kernel

Public Class Methods

open(name, *rest, &block) click to toggle source

Allows the opening of various resources including URIs.

If the first argument responds to the 'open' method, 'open' is called on it with the rest of the arguments.

If the first argument is a string that begins with xxx://, it is parsed by URI.parse. If the parsed object responds to the 'open' method, 'open' is called on it with the rest of the arguments.

Otherwise, the original Kernel#open is called.

Since open-uri.rb provides URI::HTTP#open, URI::HTTPS#open and URI::FTP#open, Kernelopen can accept URIs and strings that begin with http://, https:// and ftp://. In these cases, the opened file object is extended by OpenURI::Meta.

# File lib/rf-rest-open-uri.rb, line 28
def open(name, *rest, &block) # :doc:
  if name.respond_to?(:open)
    name.open(*rest, &block)
  elsif name.respond_to?(:to_str) &&
        %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
        (uri = URI.parse(name)).respond_to?(:open)
    uri.open(*rest, &block)
  else
    rest_open_uri_original_open(name, *rest, &block)
  end
end

Private Class Methods

rest_open_uri_original_open(name, *rest, &block)
Alias for: open

Private Instance Methods

open(name, *rest, &block) click to toggle source

Allows the opening of various resources including URIs.

If the first argument responds to the 'open' method, 'open' is called on it with the rest of the arguments.

If the first argument is a string that begins with xxx://, it is parsed by URI.parse. If the parsed object responds to the 'open' method, 'open' is called on it with the rest of the arguments.

Otherwise, the original Kernel#open is called.

Since open-uri.rb provides URI::HTTP#open, URI::HTTPS#open and URI::FTP#open, Kernelopen can accept URIs and strings that begin with http://, https:// and ftp://. In these cases, the opened file object is extended by OpenURI::Meta.

# File lib/rf-rest-open-uri.rb, line 28
def open(name, *rest, &block) # :doc:
  if name.respond_to?(:open)
    name.open(*rest, &block)
  elsif name.respond_to?(:to_str) &&
        %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
        (uri = URI.parse(name)).respond_to?(:open)
    uri.open(*rest, &block)
  else
    rest_open_uri_original_open(name, *rest, &block)
  end
end
rest_open_uri_original_open(name, *rest, &block)
Alias for: open