# all files / ol/ string.js

100% Statements 17/17
100% Branches 14/14
100% Functions 2/2
100% Lines 17/17

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    401×

    1×
    129×
    129×
    129×
    129×

    1×
    70×
    70×

    70×
    172×
    172×

    172×
    13×

    159×
    12×

    45×

     goog.provide('ol.string');

    /**
     * @param {number} number Number to be formatted
     * @param {number} width The desired width
     * @param {number=} opt_precision Precision of the output string (i.e. number of decimal places)
     * @returns {string} Formatted string
    */
    ol.string.padNumber = function(number, width, opt_precision) {
      var numberString = opt_precision !== undefined ? number.toFixed(opt_precision) : '' + number;
      var decimal = numberString.indexOf('.');
      decimal = decimal === -1 ? numberString.length : decimal;
      return decimal > width ? numberString : new Array(1 + width - decimal).join('0') + numberString;
    };

    /**
     * Adapted from https://github.com/omichelsen/compare-versions/blob/master/index.js
     * @param {string|number} v1 First version
     * @param {string|number} v2 Second version
     * @returns {number} Value
     */
    ol.string.compareVersions = function(v1, v2) {
      var s1 = ('' + v1).split('.');
      var s2 = ('' + v2).split('.');

      for (var i = 0; i < Math.max(s1.length, s2.length); i++) {
        var n1 = parseInt(s1[i] || '0', 10);
        var n2 = parseInt(s2[i] || '0', 10);

        if (n1 > n2) {
          return 1;
        }
        if (n2 > n1) {
          return -1;
        }
      }

      return 0;
    };