def select(*components)
      components.collect do |c|
        if component.include?(c)
          self.send(c)
        else
          raise ArgumentError, 
            "expected of components of #{self.class} (#{self.class.component.join(', ')})"
        end
      end
    end
def select(*components)
      components.collect do |c|
        if component.include?(c)
          self.send(c)
        else
          raise ArgumentError, 
            "expected of components of #{self.class} (#{self.class.component.join(', ')})"
        end
      end
    end
== Args

 +components+::
    Multiple Symbol arguments defined in URI::HTTP

 == Description

 Selects specified components from URI

 == Usage

   require 'uri'

   uri = URI.parse('http://myuser:mypass@my.example.com/test.rbx')
   p uri.select(:userinfo, :host, :path)
   # => ["myuser:mypass", "my.example.com", "/test.rbx"]