Module: Kernel (Ruby 2.2.2)
Description: Module : Kernel - Ruby 2.2.2

- Home
- Core 2.2.2
- Std-lib 2.2.2
- Downloads

Support for the Ruby 2.2 series has ended. See here for reference.

### Home Classes Methods

### In Files

- open-uri.rb

### Methods

- ::open
- #open

### Class/Module Index

Quicksearch

- Kernel
- OpenURI
- OpenURI::HTTPError
- OpenURI::HTTPRedirect
- OpenURI::Meta
- OpenURI::OpenRead
- URI
- URI::FTP
- URI::HTTP

No matching classes.

# 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 #open is called.

OpenURI::OpenRead#open provides OpenURI::OpenRead#open, URI::HTTPS#open and OpenURI::OpenRead#open, #open.

We 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 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
        open_uri_original_open(name, *rest, &block)
      end
    end

Also aliased as: open_uri_original_open, open_uri_original_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 #open is called.

OpenURI::OpenRead#open provides OpenURI::OpenRead#open, URI::HTTPS#open and OpenURI::OpenRead#open, #open.

We 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 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
        open_uri_original_open(name, *rest, &block)
      end
    end

Also aliased as: open_uri_original_open, open_uri_original_open