-
Notifications
You must be signed in to change notification settings - Fork 640
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prototype: Add Number.prototype.round/ceil/floor/abs as an aliases to…
… the respective methods in Math. Refactor to seperate number extensions from base.js. [Thomas Fuchs]
- Loading branch information
Showing
6 changed files
with
99 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
Object.extend(Number.prototype, { | ||
toColorPart: function() { | ||
return this.toPaddedString(2, 16); | ||
}, | ||
|
||
succ: function() { | ||
return this + 1; | ||
}, | ||
|
||
times: function(iterator) { | ||
$R(0, this, true).each(iterator); | ||
return this; | ||
}, | ||
|
||
toPaddedString: function(length, radix) { | ||
var string = this.toString(radix || 10); | ||
return '0'.times(length - string.length) + string; | ||
}, | ||
|
||
toJSON: function() { | ||
return isFinite(this) ? this.toString() : 'null'; | ||
} | ||
}); | ||
|
||
$w('abs round ceil floor').each(function(method){ | ||
Number.prototype[method] = function(){ return Math[method](this); } | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | ||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
<head> | ||
<title>Prototype Unit test file</title> | ||
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> | ||
<script src="../../dist/prototype.js" type="text/javascript"></script> | ||
<script src="../lib/unittest.js" type="text/javascript"></script> | ||
<link rel="stylesheet" href="../test.css" type="text/css" /> | ||
<style type="text/css" media="screen"> | ||
/* <![CDATA[ */ | ||
#testcss1 { font-size:11px; color: #f00; } | ||
#testcss2 { font-size:12px; color: #0f0; display: none; } | ||
/* ]]> */ | ||
</style> | ||
</head> | ||
<body> | ||
<h1>Prototype Unit test file</h1> | ||
<p> | ||
Test of utility functions in number.js | ||
</p> | ||
|
||
<!-- Log output --> | ||
<div id="testlog"> </div> | ||
|
||
<!-- Tests follow --> | ||
<script type="text/javascript" language="javascript" charset="utf-8"> | ||
// <![CDATA[ | ||
|
||
new Test.Unit.Runner({ | ||
|
||
testNumberMathMethods: function() {with(this) { | ||
assertEqual(1, (0.9).round()); | ||
assertEqual(-2, (-1.9).floor()); | ||
assertEqual(-1, (-1.9).ceil()); | ||
|
||
$w('abs floor round ceil').each( function(method){ | ||
assertEqual(Math[method](Math.PI), Math.PI[method]()); | ||
}); | ||
}}, | ||
|
||
testNumberToColorPart: function() {with(this) { | ||
assertEqual('00', (0).toColorPart()); | ||
assertEqual('0a', (10).toColorPart()); | ||
assertEqual('ff', (255).toColorPart()); | ||
}}, | ||
|
||
testNumberToPaddedString: function() {with(this) { | ||
assertEqual('00', (0).toPaddedString(2, 16)); | ||
assertEqual('0a', (10).toPaddedString(2, 16)); | ||
assertEqual('ff', (255).toPaddedString(2, 16)); | ||
assertEqual('000', (0).toPaddedString(3)); | ||
assertEqual('010', (10).toPaddedString(3)); | ||
assertEqual('100', (100).toPaddedString(3)); | ||
assertEqual('1000', (1000).toPaddedString(3)); | ||
}}, | ||
|
||
testNumberToJSON: function() {with(this) { | ||
assertEqual('null', Number.NaN.toJSON()); | ||
assertEqual('0', (0).toJSON()); | ||
assertEqual('-293', (-293).toJSON()); | ||
}} | ||
|
||
}, 'testlog'); | ||
|
||
// ]]> | ||
</script> | ||
</body> | ||
</html> |