'use strict';
module.exports = ( () => {
  function replaceWithRange(expression, text, init, end) {

    var numbers = [];
    var last = parseInt(end);
    var first = parseInt(init);

    if(first > last){
      last = parseInt(init);
      first = parseInt(end);
    }

    for(var i = first; i <= last; i++) {
      numbers.push(i);
    }

    return expression.replace(new RegExp(text, 'gi'), numbers.join());
  }

  function convertRange(expression){
    var rangeRegEx = /(\d+)\-(\d+)/;
    var match = rangeRegEx.exec(expression);
    while(match !== null && match.length > 0){
      expression = replaceWithRange(expression, match[0], match[1], match[2]);
      match = rangeRegEx.exec(expression);
    }
    return expression;
  }

  function convertAllRanges(expressions){
    for(var i = 0; i < expressions.length; i++){
      expressions[i] = convertRange(expressions[i]);
    }
    return expressions;
  }

  return convertAllRanges;
})();



