# File lib/core/uri.rb, line 61 def self.uri(s) case s when URI::AMQP then s # This is already an AMQP or AMQPS URL. when URI::Generic # Re-parse a generic URI that was not parsed as AMQP/AMQPS class s.scheme ||= 'amqp' # Default to amqp: scheme u = DEFAULT_URI_PARSER.parse(s.to_s) raise URI::BadURIError, "Not an AMQP URI: '#{u}'" unless u.is_a? URI::AMQP u else s = String.try_convert s raise ::ArgumentError, "bad argument (expected URI object or URI string)" unless s case s when %r{^amqps?:} then DEFAULT_URI_PARSER.parse(s) # Looks like an AMQP URI when %r{^//} then DEFAULT_URI_PARSER.parse("amqp:#{s}") # Looks like an authority with no scheme else DEFAULT_URI_PARSER.parse("amqp://#{s}") # Treat as a bare host:port/path string end end end