# File lib/rpm/version.rb, line 46
    def initialize(*argv)

      case argv.size
        when 0
          raise(ArgumentError "wrong number of arguments (0 for 1..3)")
        when 1
          RPM::Utils.check_type(argv[0], String)
          @e, @v, @r = RPM::Version.parse_evr(argv[0])
        when 2
          # (vr, e)
          RPM::Utils.check_type(argv[0], String)
          @e, @v, @r = RPM::Version.parse_evr(argv[0])
          raise(TypeError, "illegal argument value") if not e.nil?
          @e = argv[1].to_i
        when 3
          RPM::Utils.check_type(argv[0], String)
          RPM::Utils.check_type(argv[1], String)
          @v = argv[0]
          @r = argv[1]
          @e = argv[2].to_i
        else
          raise(ArgumentError "too many arguments (#{args.size} for 1..3)")
      end
    end