Skip to content

Commit

Permalink
195: Extracted common method to BarcodeReader;
Browse files Browse the repository at this point in the history
  • Loading branch information
serratus committed May 23, 2017
1 parent e2b37c3 commit 57312a0
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 55 deletions.
29 changes: 29 additions & 0 deletions src/reader/barcode_reader.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import ArrayHelper from '../common/array_helper';

function BarcodeReader(config, supplements) {
this._row = [];
this.config = config || {};
Expand Down Expand Up @@ -195,6 +197,33 @@ BarcodeReader.prototype._fillCounters = function(offset, end, isWhite) {
return counters;
};

BarcodeReader.prototype._toCounters = function(start, counter) {
var self = this,
numCounters = counter.length,
end = self._row.length,
isWhite = !self._row[start],
i,
counterPos = 0;

ArrayHelper.init(counter, 0);

for ( i = start; i < end; i++) {
if (self._row[i] ^ isWhite) {
counter[counterPos]++;
} else {
counterPos++;
if (counterPos === numCounters) {
break;
} else {
counter[counterPos] = 1;
isWhite = !isWhite;
}
}
}

return counter;
};

Object.defineProperty(BarcodeReader.prototype, "FORMAT", {
value: 'unknown',
writeable: false
Expand Down
27 changes: 0 additions & 27 deletions src/reader/code_39_reader.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,33 +20,6 @@ var properties = {
Code39Reader.prototype = Object.create(BarcodeReader.prototype, properties);
Code39Reader.prototype.constructor = Code39Reader;

Code39Reader.prototype._toCounters = function(start, counter) {
var self = this,
numCounters = counter.length,
end = self._row.length,
isWhite = !self._row[start],
i,
counterPos = 0;

ArrayHelper.init(counter, 0);

for ( i = start; i < end; i++) {
if (self._row[i] ^ isWhite) {
counter[counterPos]++;
} else {
counterPos++;
if (counterPos === numCounters) {
break;
} else {
counter[counterPos] = 1;
isWhite = !isWhite;
}
}
}

return counter;
};

Code39Reader.prototype._decode = function() {
var self = this,
counters = [0, 0, 0, 0, 0, 0, 0, 0, 0],
Expand Down
29 changes: 1 addition & 28 deletions src/reader/code_93_reader.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,33 +24,6 @@ var properties = {
Code93Reader.prototype = Object.create(BarcodeReader.prototype, properties);
Code93Reader.prototype.constructor = Code93Reader;

Code93Reader.prototype._toCounters = function(start, counter) {
var self = this,
numCounters = counter.length,
end = self._row.length,
isWhite = !self._row[start],
i,
counterPos = 0;

ArrayHelper.init(counter, 0);

for ( i = start; i < end; i++) {
if (self._row[i] ^ isWhite) {
counter[counterPos]++;
} else {
counterPos++;
if (counterPos === numCounters) {
break;
} else {
counter[counterPos] = 1;
isWhite = !isWhite;
}
}
}

return counter;
};

Code93Reader.prototype._decode = function() {
var self = this,
counters = [0, 0, 0, 0, 0, 0],
Expand Down Expand Up @@ -235,7 +208,7 @@ Code93Reader.prototype._decodeExtended = function(charArray) {
case 'c':
if (nextChar >= 'A' && nextChar <= 'O') {
decodedChar = String.fromCharCode(nextCharCode - 32);
} else if (nextChar == 'Z') {
} else if (nextChar === 'Z') {
decodedChar = ':';
} else {
return null;
Expand Down

0 comments on commit 57312a0

Please sign in to comment.