Method: Addressable::URI.join

Defined in:
lib/addressable/uri.rb

.join(*uris) ⇒ Addressable::URI

Joins several URIs together.

Examples:

base = "http://example.com/"
uri = Addressable::URI.parse("relative/path")
Addressable::URI.join(base, uri)
#=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>

Parameters:

Returns:



343
344
345
346
347
348
349
350
351
352
353
354
355
# File 'lib/addressable/uri.rb', line 343

def self.join(*uris)
  uri_objects = uris.collect do |uri|
    unless uri.respond_to?(:to_str)
      raise TypeError, "Can't convert #{uri.class} into String."
    end
    uri.kind_of?(self) ? uri : self.parse(uri.to_str)
  end
  result = uri_objects.shift.dup
  uri_objects.each do |uri|
    result.join!(uri)
  end
  return result
end