class HighlightLines {
	constructor(rangeStr) {
		this.highlights = this.convertRangeToHash(rangeStr);
	}

	convertRangeToHash(rangeStr) {
		let hash = {};
		if( !rangeStr ) {
			return hash;
		}

		let ranges = rangeStr.split(",").map(function(range) {
			return range.trim();
		});

		for(let range of ranges) {
			let startFinish = range.split('-');
			let start = parseInt(startFinish[0], 10);
			let end = parseInt(startFinish[1] || start, 10);

			for( let j = start, k = end; j<=k; j++ ) {
				hash[j] = true;
			}
		}
		return hash;
	}

	isHighlighted(lineNumber) {
		return !!this.highlights[lineNumber]
	}
}

module.exports = HighlightLines;