Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit 221791d

Browse files
Initial commit
0 parents commit 221791d

File tree

2 files changed

+284
-0
lines changed

2 files changed

+284
-0
lines changed

lib/rx.mootools.js

Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,284 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// This code is licensed by Microsoft Corporation under the terms
3+
// of the MICROSOFT REACTIVE EXTENSIONS FOR JAVASCRIPT AND .NET LIBRARIES License.
4+
// See http://go.microsoft.com/fwlink/?LinkId=186234.
5+
6+
// Copyright (c) Microsoft Corporation. All rights reserved.
7+
// This code is licensed by Microsoft Corporation under the terms
8+
// of the MICROSOFT REACTIVE EXTENSIONS FOR JAVASCRIPT AND .NET LIBRARIES License.
9+
// See http://go.microsoft.com/fwlink/?LinkId=186234.
10+
11+
(function(global, undefined) {
12+
var root = global.Rx,
13+
observable = root.Observable,
14+
observableCreateWithDisposable = observable.createWithDisposable,
15+
disposableCreate = root.Disposable.create,
16+
CompositeDisposable = root.CompositeDisposable,
17+
RefCountDisposable = root.RefCountDisposable,
18+
AsyncSubject = root.AsyncSubject,
19+
20+
fromMooToolsEvent = observable.fromMooToolsEvent = function(mooToolsObject, eventType) {
21+
return observable.Create(function(observer) {
22+
var handler = function(eventObject) {
23+
observer.onNext(eventObject);
24+
};
25+
mooToolsObject.addEvent(eventType, handler);
26+
return function() {
27+
mooToolsObject.removeEvent(eventType, handler);
28+
};
29+
});
30+
},
31+
32+
mooToolsToObservable = function(type) {
33+
return fromMooToolsEvent(this, type);
34+
};
35+
36+
Window.implement({
37+
addEventAsObservable : fromMooToolsEvent
38+
});
39+
40+
Document.implement({
41+
addEventAsObservable : fromMooToolsEvent
42+
});
43+
44+
Element.implement({
45+
addEventAsObservable : fromMooToolsEvent
46+
});
47+
48+
Elements.implement({
49+
addEventAsObservable : fromMooToolsEvent
50+
});
51+
52+
Events.implement({
53+
addEventAsObservable : fromMooToolsEvent
54+
});
55+
56+
var mooToolsRequest = observable.createMooToolsRequest = function(options) {
57+
var subject = new AsyncSubject(), request, refCount;
58+
options.onSuccess = function(responseText, responseXML) {
59+
subject.onNext({ responseText: responseText, responseXML: responseXML });
60+
subject.onCompleted();
61+
};
62+
options.onFailure = function(xhr) {
63+
subject.onError({ kind: 'failure', xhr: xhr });
64+
};
65+
options.onException = function(headerName, value) {
66+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
67+
};
68+
try {
69+
request = new Request(options);
70+
request.send();
71+
} catch(e) {
72+
subject.onError(e);
73+
}
74+
refCount = new RefCountDisposable(disposableCreate(function() {
75+
if(request) {
76+
request.cancel();
77+
}
78+
}));
79+
return observableCreateWithDisposable(function(subscriber) {
80+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
81+
});
82+
};
83+
84+
Request.implement({
85+
toObservable: function () {
86+
var subject = new AsyncSubject(), request = this, refCount;
87+
request.addEvents({
88+
success: function(responseText, responseXML) {
89+
subject.onNext({ responseXML: responseXML, responseText: responseText });
90+
subject.onCompleted();
91+
},
92+
failure: function(xhr) {
93+
subject.onError({ kind: 'failure', xhr: xhr });
94+
},
95+
exception: function(headerName, value) {
96+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
97+
}
98+
});
99+
try {
100+
request.send();
101+
} catch (e) {
102+
subject.onError(e);
103+
}
104+
refCount = new RefCountDisposable(disposableCreate(function () {
105+
request.cancel();
106+
}));
107+
return observableCreateWithDisposable(function (subscriber) {
108+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
109+
});
110+
}
111+
});
112+
113+
observable.createMooToolsJSONRequest = function(options) {
114+
var subject = new AsyncSubject(), request, refCount;
115+
options.onSuccess = function(responseJSON, responseText) {
116+
subject.onNext({ responseJSON: responseJSON, responseText: responseText });
117+
subject.onCompleted();
118+
};
119+
options.onFailure = function(xhr) {
120+
subject.onError({ kind: 'failure', xhr: xhr });
121+
};
122+
options.onException = function(headerName, value) {
123+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
124+
};
125+
try {
126+
request = new Request(newOptions);
127+
request.send();
128+
} catch(e) {
129+
subject.onError(e);
130+
}
131+
refCount = new RefCountDisposable(disposableCreate(function() {
132+
if(request) {
133+
request.cancel();
134+
}
135+
}));
136+
return observableCreateWithDisposable(function(subscriber) {
137+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
138+
});
139+
};
140+
141+
Request.JSON.implement({
142+
toObservable: function () {
143+
var subject = new root.AsyncSubject(), request = this, refCount;
144+
request.addEvents({
145+
success: function(responseJSON, responseText) {
146+
subject.onNext({ responseJSON: responseJSON, responseText: responseText });
147+
subject.onCompleted();
148+
},
149+
failure: function(xhr) {
150+
subject.onError({ kind: 'failure', xhr: xhr });
151+
},
152+
exception: function(headerName, value) {
153+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
154+
}
155+
});
156+
try {
157+
request.send();
158+
} catch (e) {
159+
subject.onError(e);
160+
}
161+
refCount = new RefCountDisposable(disposableCreate(function () {
162+
request.cancel();
163+
}));
164+
return observableCreateWithDisposable(function (subscriber) {
165+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
166+
});
167+
}
168+
});
169+
170+
observable.createMooToolsHTMLRequest = function(options) {
171+
var subject = new AsyncSubject(), request, refCount;
172+
options.onSuccess = function(html) {
173+
subject.onNext(html);
174+
subject.onCompleted();
175+
};
176+
options.onFailure = function(xhr) {
177+
subject.onError({ kind: 'failure', xhr: xhr });
178+
};
179+
options.onException = function(headerName, value) {
180+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
181+
};
182+
try {
183+
request = new Request.HTML(newOptions);
184+
request.send();
185+
} catch(e) {
186+
subject.onError(e);
187+
}
188+
refCount = new RefCountDisposable(root.Disposable.Create(function() {
189+
if(request) {
190+
request.cancel();
191+
}
192+
}));
193+
194+
return observableCreateWithDisposable(function(subscriber) {
195+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
196+
});
197+
}
198+
199+
Request.HTML.implement({
200+
toObservable: function () {
201+
var subject = new AsyncSubject(), request = this, refCount;
202+
request.addEvents({
203+
success: function(html) {
204+
subject.onNext(html);
205+
subject.onCompleted();
206+
},
207+
failure: function(xhr) {
208+
subject.onError({ kind: 'failure', xhr: xhr });
209+
},
210+
exception: function(headerName, value) {
211+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
212+
}
213+
});
214+
try {
215+
request.send();
216+
} catch (e) {
217+
subject.onError(e);
218+
}
219+
refCount = new RefCountDisposable(disposableCreate(function () {
220+
request.cancel();
221+
}));
222+
return observableCreateWithDisposable(function (subscriber) {
223+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
224+
});
225+
}
226+
});
227+
228+
observable.createMooToolsJSONPRequest = function(options) {
229+
var subject = new AsyncSubject(), request, refCount;
230+
options.onSuccess = function(html) {
231+
subject.onNext(html);
232+
subject.onCompleted();
233+
};
234+
options.onFailure = function(xhr) {
235+
subject.onError({ kind: 'failure', xhr: xhr });
236+
};
237+
options.onException = function(headerName, value) {
238+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
239+
};
240+
try {
241+
request = new Request.JSONP(options);
242+
request.send();
243+
} catch(e) {
244+
subject.onError(e);
245+
}
246+
refCount = new RefCountDisposable(disposableCreate(function() {
247+
if(request) {
248+
request.cancel();
249+
}
250+
}));
251+
return observableCreateWithDisposable(function(subscriber) {
252+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
253+
});
254+
};
255+
256+
Request.JSONP.implement({
257+
toObservable: function () {
258+
var subject = new AsyncSubject(), request = this, refCount;
259+
request.addEvents({
260+
success: function(data) {
261+
subject.onNext(data);
262+
subject.onCompleted();
263+
},
264+
failure: function(xhr) {
265+
subject.onError({ kind: 'failure', xhr: xhr });
266+
},
267+
exception: function(headerName, value) {
268+
subject.onError({ kind: 'exception', headerName: headerName, value: value });
269+
}
270+
});
271+
try {
272+
request.send();
273+
} catch (e) {
274+
subject.onError(e);
275+
}
276+
refCount = new RefCountDisposable(disposablecCreate(function () {
277+
request.cancel();
278+
}));
279+
return observableCreateWithDisposable(function (subscriber) {
280+
return new CompositeDisposable(subject.subscribe(subscriber), refCount.getDisposable());
281+
});
282+
}
283+
});
284+
})(this);

readme.md

Whitespace-only changes.

0 commit comments

Comments
 (0)