on master help sign in
Convert the random and touch modules to the new format.
ccf9917evancz
libraries/Native/Signal/Random.js+13−12
@@ -1,20 +1,21 @@
1
1
2−/*
3−import Signal
4−*/
5−
6−(function() {
2+Elm.Native.Random = function(elm) {
7 'use strict';
3 'use strict';
4+ elm.Native = elm.Native || {};
5+ if (elm.Native.Random) return elm.Native.Random;
8
6
9− function inRange(min, max) {
7+ var Signal = Elm.Signal(elm);
10− return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
11− }
12
8
13− function randomize(min, max, signal) {
9+ function range(min, max, signal) {
14 function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
10 function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
15− return Elm.Signal.lift(f)(signal);
11+ return A2( Signal.lift, f, signal );
12+ }
13+
14+ function float(signal) {
15+ function f(x) { return Math.random() }
16+ return A2( Signal.lift, f, signal );
16 }
17 }
17
18
18− Elm.Native.Random = { inRange:F2(inRange), randomize: F3(randomize) };
19+ return elm.Native.Random = { range: F3(randomize), float: float };
19
20
20−}());
21+};
libraries/Native/Signal/Touch.js+14−13
@@ -1,11 +1,13 @@
1−/*
2−import Signal
3−import JavaScript
4−*/
5
1
6−(function() {
2+Elm.Native.Touch = function(elm) {
7 'use strict';
3 'use strict';
8
4
5+ elm.Native = elm.Native || {};
6+ if (elm.Native.Touch) return elm.Native.Touch;
7+
8+ var Signal = Elm.Signal(elm);
9+ var JS = Elm.JavaScript(elm);
10+
9 function Dict() {
11 function Dict() {
10 this.keys = [];
12 this.keys = [];
11 this.values = [];
13 this.values = [];
@@ -28,7 +30,7 @@ import JavaScript
28 };
30 };
29 }
31 }
30
32
31− var root = Elm.Signal.constant([]),
33+ var root = Signal.constant([]),
32 tapTime = 500,
34 tapTime = 500,
33 hasTap = false,
35 hasTap = false,
34 tap = {_:{},x:0,y:0},
36 tap = {_:{},x:0,y:0},
@@ -76,24 +78,23 @@ import JavaScript
76 listen("touchleave", end);
78 listen("touchleave", end);
77
79
78 function dependency(f) {
80 function dependency(f) {
79− var sig = Elm.Signal.lift(f)(root);
81+ var sig = A2( Signal.lift, f, root );
80 root.defaultNumberOfKids += 1;
82 root.defaultNumberOfKids += 1;
81 sig.defaultNumberOfKids = 0;
83 sig.defaultNumberOfKids = 0;
82 return sig;
84 return sig;
83 }
85 }
84
86
85− var touches = dependency(function(ts) {
87+ var touches = dependency(JS.fromList);
86− return Elm.JavaScript.castJSArrayToList(ts);
87− });
88
88
89 var taps = function() {
89 var taps = function() {
90 var sig = dependency(function(_) { return tap; });
90 var sig = dependency(function(_) { return tap; });
91 sig.defaultNumberOfKids = 1;
91 sig.defaultNumberOfKids = 1;
92 function pred(_) { var b = hasTap; hasTap = false; return b; }
92 function pred(_) { var b = hasTap; hasTap = false; return b; }
93− var sig2 = Elm.Signal.keepIf(pred)({_:{},x:0,y:0})(sig);
93+ var sig2 = A3( Signal.keepIf, pred, {_:{},x:0,y:0}, sig);
94 sig2.defaultNumberOfKids = 0;
94 sig2.defaultNumberOfKids = 0;
95 return sig2;
95 return sig2;
96 }();
96 }();
97
97
98− Elm.Native.Touch = { touches: touches, taps: taps };
98+ return elm.Native.Touch = { touches: touches, taps: taps };
99+
99−}());
100+};