# Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
# You can redistribute it and/or modify it under either the terms of the
# 2-clause BSDL (see the file BSDL), or the conditions below:
#
#   1. You may make and give away verbatim copies of the source form of the
#      software without restriction, provided that you duplicate all of the
#      original copyright notices and associated disclaimers.
#
#   2. You may modify your copy of the software in any way, provided that
#      you do at least ONE of the following:
#
#        a) place your modifications in the Public Domain or otherwise
#           make them Freely Available, such as by posting said
# 	  modifications to Usenet or an equivalent medium, or by allowing
# 	  the author to include your modifications in the software.
#
#        b) use the modified software only within your corporation or
#           organization.
#
#        c) give non-standard binaries non-standard names, with
#           instructions on where to get the original software distribution.
#
#        d) make other distribution arrangements with the author.
#
#   3. You may distribute the software in object code or binary form,
#      provided that you do at least ONE of the following:
#
#        a) distribute the binaries and library files of the software,
# 	  together with instructions (in the manual page or equivalent)
# 	  on where to get the original distribution.
#
#        b) accompany the distribution with the machine-readable source of
# 	  the software.
#
#        c) give non-standard binaries non-standard names, with
#           instructions on where to get the original software distribution.
#
#        d) make other distribution arrangements with the author.
#
#   4. You may modify and include the part of the software into any other
#      software (possibly commercial).  But some files in the distribution
#      are not written by the author, so that they are not under these terms.
#
#      For the list of those files and their copying conditions, see the
#      file LEGAL.
#
#   5. The scripts and library files supplied as input to or produced as
#      output from the software do not automatically fall under the
#      copyright of the software, but belong to whomever generated them,
#      and may be sold commercially, and may be aggregated with this
#      software.
#
#   6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
#      IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
#      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#      PURPOSE.

require 'uri'

unless URI::Generic.instance_methods.map {|m| m.to_s}.include?("hostname")

  class URI::Generic
    # Copied from the MRI source for Ruby 1.9.3
    # File lib/uri/generic.rb, line 659
    def hostname
      v = self.host
      /\A\[(.*)\]\z/ =~ v ? $1 : v
    end
  end
end
