summaryrefslogtreecommitdiff
path: root/threads.js
diff options
context:
space:
mode:
authorJens Mönig <jens@moenig.org>2014-02-11 17:55:19 +0100
committerJens Mönig <jens@moenig.org>2014-02-11 17:55:19 +0100
commit3e7891b5a637196130393d51ba6ff2747926995f (patch)
tree3504d46dffac1104e1fcdac9ab2033167454f6b2 /threads.js
parent0e0146a0d805389fed1064a5a94db43b1f0e4d3b (diff)
parent407dbda43fb3e5e5e1af94417c585dd9004d2e6a (diff)
downloadsnap-3e7891b5a637196130393d51ba6ff2747926995f.tar.gz
snap-3e7891b5a637196130393d51ba6ff2747926995f.zip
Merge pull request #288 from cycomachead/dateblock
Create a "Date" Block for Snap
Diffstat (limited to 'threads.js')
-rw-r--r--threads.js33
1 files changed, 31 insertions, 2 deletions
diff --git a/threads.js b/threads.js
index 93931c1..77632d0 100644
--- a/threads.js
+++ b/threads.js
@@ -83,7 +83,7 @@ ArgLabelMorph, localize, XML_Element, hex_sha512*/
// Global stuff ////////////////////////////////////////////////////////
-modules.threads = '2014-Feb-03';
+modules.threads = '2014-Feb-10';
var ThreadManager;
var Process;
@@ -111,7 +111,7 @@ function snapEquals(a, b) {
y = b;
}
- // handle text comparision text-insensitive.
+ // handle text comparision case-insensitive.
if (isString(x) && isString(y)) {
return x.toLowerCase() === y.toLowerCase();
}
@@ -2536,6 +2536,35 @@ Process.prototype.reportTimer = function () {
return 0;
};
+// Process Dates and times in Snap
+// Map block options to built-in functions
+var dateMap = {
+ 'year' : 'getFullYear',
+ 'month' : 'getMonth',
+ 'date': 'getDate',
+ 'day of week' : 'getDay',
+ 'hour' : 'getHours',
+ 'minute' : 'getMinutes',
+ 'second' : 'getSeconds',
+ 'time in milliseconds' : 'getTime'
+};
+
+Process.prototype.reportDate = function (datefn) {
+ var inputFn = this.inputOption(datefn),
+ currDate = new Date(),
+ func = dateMap[inputFn],
+ result = currDate[func]();
+
+ if (!dateMap[inputFn]) { return ''; }
+
+ // Show months as 1-12 and days as 1-7
+ if (inputFn === 'month' || inputFn === 'day of week') {
+ result += 1;
+ }
+
+ return result;
+};
+
// Process code mapping
/*