From ccf9917f2ebb25389c78e92714ee59db5a7fd887 Mon Sep 17 00:00:00 2001 From: evancz Date: Fri, 8 Mar 2013 22:57:13 -0800 Subject: [PATCH] Convert the random and touch modules to the new format. --- libraries/Native/Signal/Random.js | 25 +++++++++++++------------ libraries/Native/Signal/Touch.js | 27 ++++++++++++++------------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/libraries/Native/Signal/Random.js b/libraries/Native/Signal/Random.js index 6f1715b..751612b 100644 --- a/libraries/Native/Signal/Random.js +++ b/libraries/Native/Signal/Random.js @@ -1,20 +1,21 @@ -/* -import Signal -*/ - -(function() { +Elm.Native.Random = function(elm) { 'use strict'; + elm.Native = elm.Native || {}; + if (elm.Native.Random) return elm.Native.Random; - function inRange(min, max) { - return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min); - } + var Signal = Elm.Signal(elm); - function randomize(min, max, signal) { + function range(min, max, signal) { function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; } - return Elm.Signal.lift(f)(signal); + return A2( Signal.lift, f, signal ); } - Elm.Native.Random = { inRange:F2(inRange), randomize: F3(randomize) }; + function float(signal) { + function f(x) { return Math.random() } + return A2( Signal.lift, f, signal ); + } -}()); \ No newline at end of file + return elm.Native.Random = { range: F3(randomize), float: float }; + +}; \ No newline at end of file diff --git a/libraries/Native/Signal/Touch.js b/libraries/Native/Signal/Touch.js index 7869a96..4717c5a 100644 --- a/libraries/Native/Signal/Touch.js +++ b/libraries/Native/Signal/Touch.js @@ -1,11 +1,13 @@ -/* -import Signal -import JavaScript -*/ -(function() { +Elm.Native.Touch = function(elm) { 'use strict'; + elm.Native = elm.Native || {}; + if (elm.Native.Touch) return elm.Native.Touch; + + var Signal = Elm.Signal(elm); + var JS = Elm.JavaScript(elm); + function Dict() { this.keys = []; this.values = []; @@ -28,7 +30,7 @@ import JavaScript }; } - var root = Elm.Signal.constant([]), + var root = Signal.constant([]), tapTime = 500, hasTap = false, tap = {_:{},x:0,y:0}, @@ -76,24 +78,23 @@ import JavaScript listen("touchleave", end); function dependency(f) { - var sig = Elm.Signal.lift(f)(root); + var sig = A2( Signal.lift, f, root ); root.defaultNumberOfKids += 1; sig.defaultNumberOfKids = 0; return sig; } - var touches = dependency(function(ts) { - return Elm.JavaScript.castJSArrayToList(ts); - }); + var touches = dependency(JS.fromList); var taps = function() { var sig = dependency(function(_) { return tap; }); sig.defaultNumberOfKids = 1; function pred(_) { var b = hasTap; hasTap = false; return b; } - var sig2 = Elm.Signal.keepIf(pred)({_:{},x:0,y:0})(sig); + var sig2 = A3( Signal.keepIf, pred, {_:{},x:0,y:0}, sig); sig2.defaultNumberOfKids = 0; return sig2; }(); - Elm.Native.Touch = { touches: touches, taps: taps }; -}()); \ No newline at end of file + return elm.Native.Touch = { touches: touches, taps: taps }; + +}; \ No newline at end of file