API Docs for: 1.0.0
Show:

File: src\utils\Version.ts

/**
* 
* @module Kiwi
* @submodule Utils
*/

module Kiwi.Utils {

    /**
    * Deals with parsing and comparing semver style version numbers
    * @class Version
    * @constructor
    * @namespace Kiwi.Utils
    */
    export class Version {

        /**
        * Parses a string such as "1.2.3" and returns an oject containing numeric properties for majorVersion, minorVersion and patchVersion
        * @method parseVersion
        * @param version {String}
        * @return {Object}
        * @public
        * @static
        */
        public static parseVersion(version: string) {
            var split: Array<string> = version.split(".");
            return {
                majorVersion: parseInt(split[0]),
                minorVersion: parseInt(split[1]),
                patchVersion: parseInt(split[2])
            }  
        }

        /**
        * Compares two semver version strings such as "0.1.0" and "0.2.1". Returns "greater", "less" or "equal". 
        * @method parseVersion
        * @param version1 {String}
        * @param version2 {String}
        * @return {String}
        * @public
        * @static
        */
        public static compareVersions(version1: string, version2: string): string {
            var v1:any = Version.parseVersion(version1);
            var v2:any = Version.parseVersion(version2);
            if (v1.majorVersion > v2.majorVersion) {
                return "greater";    
            }
            if (v1.majorVersion < v2.majorVersion) {
                return "less";
            }
            // major versions must be equal
            if (v1.minorVersion > v2.minorVersion) {
                return "greater";
            }
            if (v1.minorVersion < v2.minorVersion) {
                return "less";
            }
            //minor versions must be equal
            if (v1.patchVersion > v2.patchVersion) {
                return "greater";
            }
            if (v1.patchVersion < v2.patchVersion) {
                return "less";
            }
            //patch versions must be equal
            return "equal";

        }

        /**
        * Compares two semver version strings such as "0.1.0" and "0.2.1". Returns true if version1 is greater than version2. 
        * @method parseVersion
        * @param version1 {String}
        * @param version2 {String}
        * @return {boolean}
        * @public
        * @static
        */
        public static greaterOrEqual(version1: string, version2: string): boolean {
            var comp = Version.compareVersions(version1, version2);
            return (comp == "greater" || comp == "equal");
        }

    }

}