# Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved. # Author: Nicolas Despres . # License: Gnu General Public License. # $LastChangedBy: polrop $ # $Id: version.rb 101 2005-01-15 07:58:58Z polrop $ class Version include Comparable attr_accessor :major, :minor, :revision def initialize(major, minor, revision) @major = major @minor = minor @revision = revision end def <=>(other) if @major == other.major if @minor == other.minor @revision <=> other.revision else @minor <=> other.minor end else @major <=> other.major end end def to_s "#@major.#@minor.#@revision" end def to_a [ @major, @minor, @revision ] end end # class Version if defined? TEST_MODE or __FILE__ == $0 require 'test/unit/ui/yaml/testrunner' class VersionTest < Test::Unit::TestCase def test_simple assert(Version.new(1, 2, 3) < Version.new(1, 2, 4)) assert(Version.new(1, 2, 4) > Version.new(1, 2, 3)) assert(Version.new(1, 2, 3) == Version.new(1, 2, 3)) assert(Version.new(1, 3, 3) > Version.new(1, 2, 3)) assert(Version.new(1, 2, 3) < Version.new(1, 3, 3)) assert(Version.new(2, 2, 3) > Version.new(1, 2, 3)) assert(Version.new(1, 2, 3) < Version.new(2, 2, 3)) end end # class VersionTest end