class Gem::Requirement

def self.create input

def self.create input
  case input
  when Gem::Requirement then
    input
  when Gem::Version, Array then
    new input
  when '!' then
    source_set
  else
    if input.respond_to? :to_str then
      new [input.to_str]
    else
      default
    end
  end
end