Skip to content
This repository has been archived by the owner on Mar 5, 2020. It is now read-only.

Commit

Permalink
Saved some function calls from the mask method.
Browse files Browse the repository at this point in the history
  • Loading branch information
jpedrosa committed Nov 19, 2011
1 parent 9d0556b commit 5c06c83
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
6 changes: 4 additions & 2 deletions luhny.dart
Expand Up @@ -66,6 +66,7 @@ mask(s) {
if (numBroadMatches > 0) {
var reDigit = Helpers.regexp(@'\d');
var md = broadMatches[0];
var mdStartAt = md.start();
var mdIndex = 0;
var matchFrom = 0;
var mi = 0;
Expand All @@ -77,7 +78,7 @@ mask(s) {
var matchStart = iterateResult[1];
var matchLen = iterateResult[2];
mi += matchStart + 1;
var n = matchFrom + md.start();
var n = matchFrom + mdStartAt;
if (masked === null) { masked = s.splitChars(); }
while (matchStart > 0) {
if (DIGITS[s[n]] !== null) { matchStart -= 1; }
Expand All @@ -87,7 +88,7 @@ mask(s) {
while (matchLen > 0) {
if (DIGITS[s[n]] !== null) {
if (matchFrom < 0) {
matchFrom = n - md.start() + 1;
matchFrom = n - mdStartAt + 1;
}
masked[n] = 'X';
matchLen -= 1;
Expand All @@ -100,6 +101,7 @@ mask(s) {
matchFrom = 0;
mi = 0;
md = broadMatches[mdIndex];
mdStartAt = md.start();
broadDigits = map(scan(md[0], reDigit), (v) => Math.parseInt(v));
} else {
break;
Expand Down
6 changes: 4 additions & 2 deletions luhny.rb
Expand Up @@ -71,6 +71,7 @@ def mask s
numbroad_matches = broad_matches.length
if numbroad_matches > 0
md = broad_matches[0]
md_start_at = md.begin(0)
md_index = 0
match_from = 0
mi = 0
Expand All @@ -79,7 +80,7 @@ def mask s
found, match_start, match_len = iterate(broad_digits, mi)
if found
mi += match_start + 1
n = match_from + md.begin(0)
n = match_from + md_start_at
masked = s[0..-1] if not masked
while match_start > 0
match_start -= 1 if DIGITS[s[n]]
Expand All @@ -88,7 +89,7 @@ def mask s
match_from = -1
while match_len > 0
if DIGITS[s[n]]
match_from = n - md.begin(0) + 1 if match_from < 0
match_from = n - md_start_at + 1 if match_from < 0
masked[n] = 'X'
match_len -= 1
end
Expand All @@ -100,6 +101,7 @@ def mask s
match_from = 0
mi = 0
md = broad_matches[md_index]
md_start_at = md.begin(0)
broad_digits = md[0].scan(/\d/).map{|v| v.to_i }
else
break
Expand Down
4 changes: 2 additions & 2 deletions mask.sh
Expand Up @@ -2,5 +2,5 @@

# Call your program here instead of cat.
#cat
./luhny.rb
#./luhny.dart
#./luhny.rb
./luhny.dart

0 comments on commit 5c06c83

Please sign in to comment.