Sha256: 1f3e8496502c072b7a1bf84b50faa6292074ced26a692033646d11b10aa4a8d1

Contents?: true

Size: 748 Bytes

Versions: 5

Compression:

Stored size: 748 Bytes

Contents

class Request
  class Protocol
    include Adamantium, Concord.new(:name, :default_port)

    private_class_method :new

    ALL = []

    ALL << HTTP  = new('http',   80)
    ALL << HTTPS = new('https', 443)

    # Return name
    #
    # @return [String]
    #
    # @api private
    #
    attr_reader :name

    # Return default port
    #
    # @return [Fixnum]
    #
    # @api private
    #
    attr_reader :default_port

    ALL.freeze

    INDEX = ALL.each_with_object({}) do |protocol, index|
      index[protocol.name] = protocol
    end.freeze

    # Return protocol for name
    #
    # @param [String] name
    #
    # @return [Protocol]
    #
    # @api private
    #
    def self.get(name)
      INDEX.fetch(name)
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
request-0.0.6 lib/request/protocol.rb
request-0.0.5 lib/request/protocol.rb
request-0.0.4 lib/request/protocol.rb
request-0.0.3 lib/request/protocol.rb
request-0.0.2 lib/request/protocol.rb