rxjs-rails 2.2.18 → 2.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rxjs/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rx.aggregates.js +4 -12
- data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.compat.js +170 -148
- data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.js +107 -83
- data/vendor/assets/javascripts/rx.async.min.js +1 -1
- data/vendor/assets/javascripts/rx.backpressure.js +97 -33
- data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
- data/vendor/assets/javascripts/rx.coincidence.js +2 -4
- data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
- data/vendor/assets/javascripts/rx.compat.js +31 -11
- data/vendor/assets/javascripts/rx.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.experimental.js +3 -3
- data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
- data/vendor/assets/javascripts/rx.joinpatterns.js +4 -7
- data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
- data/vendor/assets/javascripts/rx.js +31 -11
- data/vendor/assets/javascripts/rx.lite.compat.js +296 -190
- data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.lite.js +233 -125
- data/vendor/assets/javascripts/rx.lite.min.js +2 -2
- data/vendor/assets/javascripts/rx.min.js +2 -2
- data/vendor/assets/javascripts/rx.virtualtime.js +2 -3
- data/vendor/assets/javascripts/rx.virtualtime.min.js +1 -1
- metadata +2 -2
@@ -25,18 +25,21 @@
|
|
25
25
|
internals: {},
|
26
26
|
config: {
|
27
27
|
Promise: root.Promise // Detect if promise exists
|
28
|
-
}
|
28
|
+
},
|
29
|
+
helpers: { }
|
29
30
|
};
|
30
31
|
|
31
32
|
// Defaults
|
32
|
-
function
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
33
|
+
var noop = Rx.helpers.noop = function () { },
|
34
|
+
identity = Rx.helpers.identity = function (x) { return x; },
|
35
|
+
defaultNow = Rx.helpers.defaultNow = Date.now,
|
36
|
+
defaultComparer = Rx.helpers.defaultComparer = function (x, y) { return isEqual(x, y); },
|
37
|
+
defaultSubComparer = Rx.helpers.defaultSubComparer = function (x, y) { return x > y ? 1 : (x < y ? -1 : 0); },
|
38
|
+
defaultKeySerializer = Rx.helpers.defaultKeySerializer = function (x) { return x.toString(); },
|
39
|
+
defaultError = Rx.helpers.defaultError = function (err) { throw err; },
|
40
|
+
isPromise = Rx.helpers.isPromise = function (p) { return typeof p.then === 'function' && p.then !== Rx.Observable.prototype.then; },
|
41
|
+
asArray = Rx.helpers.asArray = function () { return Array.prototype.slice.call(arguments); },
|
42
|
+
not = Rx.helpers.not = function (a) { return !a; };
|
40
43
|
|
41
44
|
// Errors
|
42
45
|
var sequenceContainsNoElements = 'Sequence contains no elements.';
|
@@ -1460,9 +1463,13 @@
|
|
1460
1463
|
return;
|
1461
1464
|
}
|
1462
1465
|
|
1466
|
+
// Check if promise
|
1467
|
+
var currentValue = currentItem.value;
|
1468
|
+
isPromise(currentValue) && (currentValue = observableFromPromise(currentValue));
|
1469
|
+
|
1463
1470
|
var d = new SingleAssignmentDisposable();
|
1464
1471
|
subscription.setDisposable(d);
|
1465
|
-
d.setDisposable(
|
1472
|
+
d.setDisposable(currentValue.subscribe(
|
1466
1473
|
observer.onNext.bind(observer),
|
1467
1474
|
observer.onError.bind(observer),
|
1468
1475
|
function () { self(); })
|
@@ -1509,9 +1516,13 @@
|
|
1509
1516
|
return;
|
1510
1517
|
}
|
1511
1518
|
|
1519
|
+
// Check if promise
|
1520
|
+
var currentValue = currentItem.value;
|
1521
|
+
isPromise(currentValue) && (currentValue = observableFromPromise(currentValue));
|
1522
|
+
|
1512
1523
|
var d = new SingleAssignmentDisposable();
|
1513
1524
|
subscription.setDisposable(d);
|
1514
|
-
d.setDisposable(
|
1525
|
+
d.setDisposable(currentValue.subscribe(
|
1515
1526
|
observer.onNext.bind(observer),
|
1516
1527
|
function (exn) {
|
1517
1528
|
lastException = exn;
|
@@ -1908,6 +1919,9 @@
|
|
1908
1919
|
} catch (e) {
|
1909
1920
|
return observableThrow(e).subscribe(observer);
|
1910
1921
|
}
|
1922
|
+
|
1923
|
+
// Check if promise
|
1924
|
+
isPromise(result) && (result = observableFromPromise(result));
|
1911
1925
|
return result.subscribe(observer);
|
1912
1926
|
});
|
1913
1927
|
};
|
@@ -3315,98 +3329,122 @@
|
|
3315
3329
|
};
|
3316
3330
|
};
|
3317
3331
|
|
3318
|
-
|
3319
|
-
|
3320
|
-
|
3321
|
-
|
3322
|
-
|
3323
|
-
|
3324
|
-
|
3325
|
-
|
3326
|
-
|
3327
|
-
|
3328
|
-
|
3329
|
-
|
3330
|
-
|
3332
|
+
function createListener (element, name, handler) {
|
3333
|
+
// Node.js specific
|
3334
|
+
if (element.addListener) {
|
3335
|
+
element.addListener(name, handler);
|
3336
|
+
return disposableCreate(function () {
|
3337
|
+
element.removeListener(name, handler);
|
3338
|
+
});
|
3339
|
+
}
|
3340
|
+
if (element.addEventListener) {
|
3341
|
+
element.addEventListener(name, handler, false);
|
3342
|
+
return disposableCreate(function () {
|
3343
|
+
element.removeEventListener(name, handler, false);
|
3344
|
+
});
|
3331
3345
|
}
|
3346
|
+
throw new Error('No listener found');
|
3347
|
+
}
|
3332
3348
|
|
3333
|
-
|
3334
|
-
|
3349
|
+
function createEventListener (el, eventName, handler) {
|
3350
|
+
var disposables = new CompositeDisposable();
|
3335
3351
|
|
3336
|
-
|
3337
|
-
|
3338
|
-
|
3339
|
-
|
3340
|
-
|
3341
|
-
|
3342
|
-
|
3343
|
-
}
|
3344
|
-
|
3345
|
-
return disposables;
|
3352
|
+
// Asume NodeList
|
3353
|
+
if (typeof el.item === 'function' && typeof el.length === 'number') {
|
3354
|
+
for (var i = 0, len = el.length; i < len; i++) {
|
3355
|
+
disposables.add(createEventListener(el.item(i), eventName, handler));
|
3356
|
+
}
|
3357
|
+
} else if (el) {
|
3358
|
+
disposables.add(createListener(el, eventName, handler));
|
3346
3359
|
}
|
3347
3360
|
|
3348
|
-
|
3349
|
-
|
3350
|
-
*
|
3351
|
-
* @example
|
3352
|
-
* var source = Rx.Observable.fromEvent(element, 'mouseup');
|
3353
|
-
*
|
3354
|
-
* @param {Object} element The DOMElement or NodeList to attach a listener.
|
3355
|
-
* @param {String} eventName The event name to attach the observable sequence.
|
3356
|
-
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
3357
|
-
* @returns {Observable} An observable sequence of events from the specified element and the specified event.
|
3358
|
-
*/
|
3359
|
-
Observable.fromEvent = function (element, eventName, selector) {
|
3360
|
-
return new AnonymousObservable(function (observer) {
|
3361
|
-
return createEventListener(
|
3362
|
-
element,
|
3363
|
-
eventName,
|
3364
|
-
function handler (e) {
|
3365
|
-
var results = e;
|
3361
|
+
return disposables;
|
3362
|
+
}
|
3366
3363
|
|
3367
|
-
|
3368
|
-
|
3369
|
-
|
3370
|
-
|
3371
|
-
|
3372
|
-
return
|
3373
|
-
}
|
3374
|
-
}
|
3364
|
+
// Check for Angular/jQuery/Zepto support
|
3365
|
+
var jq =
|
3366
|
+
!!root.angular && !!angular.element ? angular.element :
|
3367
|
+
(!!root.jQuery ? root.jQuery : (
|
3368
|
+
!!root.Zepto ? root.Zepto : null));
|
3375
3369
|
|
3376
|
-
|
3377
|
-
|
3378
|
-
|
3379
|
-
|
3380
|
-
|
3381
|
-
|
3382
|
-
|
3383
|
-
|
3384
|
-
|
3385
|
-
|
3386
|
-
|
3387
|
-
|
3388
|
-
|
3389
|
-
|
3390
|
-
|
3391
|
-
|
3392
|
-
|
3393
|
-
|
3394
|
-
|
3395
|
-
|
3396
|
-
|
3397
|
-
|
3398
|
-
|
3399
|
-
|
3370
|
+
// Check for ember
|
3371
|
+
var ember = !!root.Ember && typeof root.Ember.addListener === 'function';
|
3372
|
+
|
3373
|
+
/**
|
3374
|
+
* Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList.
|
3375
|
+
*
|
3376
|
+
* @example
|
3377
|
+
* var source = Rx.Observable.fromEvent(element, 'mouseup');
|
3378
|
+
*
|
3379
|
+
* @param {Object} element The DOMElement or NodeList to attach a listener.
|
3380
|
+
* @param {String} eventName The event name to attach the observable sequence.
|
3381
|
+
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
3382
|
+
* @returns {Observable} An observable sequence of events from the specified element and the specified event.
|
3383
|
+
*/
|
3384
|
+
Observable.fromEvent = function (element, eventName, selector) {
|
3385
|
+
if (ember) {
|
3386
|
+
return fromEventPattern(
|
3387
|
+
function (h) { Ember.addListener(element, eventName); },
|
3388
|
+
function (h) { Ember.removeListener(element, eventName); },
|
3389
|
+
selector);
|
3390
|
+
}
|
3391
|
+
if (jq) {
|
3392
|
+
var $elem = jq(elem);
|
3393
|
+
return fromEventPattern(
|
3394
|
+
function (h) { $elem.on(eventName, h); },
|
3395
|
+
function (h) { $elem.off(eventName, h); },
|
3396
|
+
selector);
|
3397
|
+
}
|
3398
|
+
return new AnonymousObservable(function (observer) {
|
3399
|
+
return createEventListener(
|
3400
|
+
element,
|
3401
|
+
eventName,
|
3402
|
+
function handler (e) {
|
3403
|
+
var results = e;
|
3404
|
+
|
3405
|
+
if (selector) {
|
3406
|
+
try {
|
3407
|
+
results = selector(arguments);
|
3408
|
+
} catch (err) {
|
3409
|
+
observer.onError(err);
|
3410
|
+
return
|
3400
3411
|
}
|
3412
|
+
}
|
3401
3413
|
|
3402
|
-
|
3403
|
-
|
3404
|
-
|
3405
|
-
|
3406
|
-
|
3407
|
-
|
3408
|
-
|
3409
|
-
|
3414
|
+
observer.onNext(results);
|
3415
|
+
});
|
3416
|
+
}).publish().refCount();
|
3417
|
+
};
|
3418
|
+
/**
|
3419
|
+
* Creates an observable sequence from an event emitter via an addHandler/removeHandler pair.
|
3420
|
+
* @param {Function} addHandler The function to add a handler to the emitter.
|
3421
|
+
* @param {Function} [removeHandler] The optional function to remove a handler from an emitter.
|
3422
|
+
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
3423
|
+
* @returns {Observable} An observable sequence which wraps an event from an event emitter
|
3424
|
+
*/
|
3425
|
+
var fromEventPattern = Observable.fromEventPattern = function (addHandler, removeHandler, selector) {
|
3426
|
+
return new AnonymousObservable(function (observer) {
|
3427
|
+
function innerHandler (e) {
|
3428
|
+
var result = e;
|
3429
|
+
if (selector) {
|
3430
|
+
try {
|
3431
|
+
result = selector(arguments);
|
3432
|
+
} catch (err) {
|
3433
|
+
observer.onError(err);
|
3434
|
+
return;
|
3435
|
+
}
|
3436
|
+
}
|
3437
|
+
observer.onNext(result);
|
3438
|
+
}
|
3439
|
+
|
3440
|
+
var returnValue = addHandler(innerHandler);
|
3441
|
+
return disposableCreate(function () {
|
3442
|
+
if (removeHandler) {
|
3443
|
+
removeHandler(innerHandler, returnValue);
|
3444
|
+
}
|
3445
|
+
});
|
3446
|
+
}).publish().refCount();
|
3447
|
+
};
|
3410
3448
|
|
3411
3449
|
/**
|
3412
3450
|
* Converts a Promise to an Observable sequence
|
@@ -3423,6 +3461,12 @@
|
|
3423
3461
|
function (reason) {
|
3424
3462
|
observer.onError(reason);
|
3425
3463
|
});
|
3464
|
+
|
3465
|
+
return function () {
|
3466
|
+
if (promise && promise.abort) {
|
3467
|
+
promise.abort();
|
3468
|
+
}
|
3469
|
+
}
|
3426
3470
|
});
|
3427
3471
|
};
|
3428
3472
|
/*
|
@@ -4486,22 +4530,16 @@
|
|
4486
4530
|
});
|
4487
4531
|
};
|
4488
4532
|
|
4489
|
-
|
4490
|
-
|
4491
|
-
|
4492
|
-
|
4493
|
-
|
4494
|
-
|
4495
|
-
* @returns {Observable} The observable sequence which is paused based upon the pauser.
|
4496
|
-
*/
|
4497
|
-
observableProto.pausable = function (pauser) {
|
4498
|
-
var self = this;
|
4499
|
-
return new AnonymousObservable(function (observer) {
|
4500
|
-
var conn = self.publish(),
|
4533
|
+
var PausableObservable = (function (_super) {
|
4534
|
+
|
4535
|
+
inherits(PausableObservable, _super);
|
4536
|
+
|
4537
|
+
function subscribe(observer) {
|
4538
|
+
var conn = this.source.publish(),
|
4501
4539
|
subscription = conn.subscribe(observer),
|
4502
4540
|
connection = disposableEmpty;
|
4503
4541
|
|
4504
|
-
var pausable =
|
4542
|
+
var pausable = this.subject.distinctUntilChanged().subscribe(function (b) {
|
4505
4543
|
if (b) {
|
4506
4544
|
connection = conn.connect();
|
4507
4545
|
} else {
|
@@ -4511,7 +4549,45 @@
|
|
4511
4549
|
});
|
4512
4550
|
|
4513
4551
|
return new CompositeDisposable(subscription, connection, pausable);
|
4514
|
-
}
|
4552
|
+
}
|
4553
|
+
|
4554
|
+
function PausableObservable(source, subject) {
|
4555
|
+
this.source = source;
|
4556
|
+
this.subject = subject || new Subject();
|
4557
|
+
this.isPaused = true;
|
4558
|
+
_super.call(this, subscribe);
|
4559
|
+
}
|
4560
|
+
|
4561
|
+
PausableObservable.prototype.pause = function () {
|
4562
|
+
if (this.isPaused === true){
|
4563
|
+
return;
|
4564
|
+
}
|
4565
|
+
this.isPaused = true;
|
4566
|
+
this.subject.onNext(false);
|
4567
|
+
};
|
4568
|
+
|
4569
|
+
PausableObservable.prototype.resume = function () {
|
4570
|
+
if (this.isPaused === false){
|
4571
|
+
return;
|
4572
|
+
}
|
4573
|
+
this.isPaused = false;
|
4574
|
+
this.subject.onNext(true);
|
4575
|
+
};
|
4576
|
+
|
4577
|
+
return PausableObservable;
|
4578
|
+
|
4579
|
+
}(Observable));
|
4580
|
+
|
4581
|
+
/**
|
4582
|
+
* Pauses the underlying observable sequence based upon the observable sequence which yields true/false.
|
4583
|
+
* @example
|
4584
|
+
* var pauser = new Rx.Subject();
|
4585
|
+
* var source = Rx.Observable.interval(100).pausable(pauser);
|
4586
|
+
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
|
4587
|
+
* @returns {Observable} The observable sequence which is paused based upon the pauser.
|
4588
|
+
*/
|
4589
|
+
observableProto.pausable = function (pauser) {
|
4590
|
+
return new PausableObservable(this, pauser);
|
4515
4591
|
};
|
4516
4592
|
function combineLatestSource(source, subject, resultSelector) {
|
4517
4593
|
return new AnonymousObservable(function (observer) {
|
@@ -4557,24 +4633,17 @@
|
|
4557
4633
|
});
|
4558
4634
|
}
|
4559
4635
|
|
4560
|
-
|
4561
|
-
|
4562
|
-
|
4563
|
-
|
4564
|
-
|
4565
|
-
* var source = Rx.Observable.interval(100).pausableBuffered(pauser);
|
4566
|
-
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
|
4567
|
-
* @returns {Observable} The observable sequence which is paused based upon the pauser.
|
4568
|
-
*/
|
4569
|
-
observableProto.pausableBuffered = function (subject) {
|
4570
|
-
var source = this;
|
4571
|
-
return new AnonymousObservable(function (observer) {
|
4636
|
+
var PausableBufferedObservable = (function (_super) {
|
4637
|
+
|
4638
|
+
inherits(PausableBufferedObservable, _super);
|
4639
|
+
|
4640
|
+
function subscribe(observer) {
|
4572
4641
|
var q = [], previous = true;
|
4573
4642
|
|
4574
4643
|
var subscription =
|
4575
4644
|
combineLatestSource(
|
4576
|
-
source,
|
4577
|
-
subject.distinctUntilChanged(),
|
4645
|
+
this.source,
|
4646
|
+
this.subject.distinctUntilChanged(),
|
4578
4647
|
function (data, shouldFire) {
|
4579
4648
|
return { data: data, shouldFire: shouldFire };
|
4580
4649
|
})
|
@@ -4599,10 +4668,49 @@
|
|
4599
4668
|
observer.onCompleted.bind(observer)
|
4600
4669
|
);
|
4601
4670
|
|
4602
|
-
subject.onNext(false);
|
4671
|
+
this.subject.onNext(false);
|
4603
4672
|
|
4604
|
-
return subscription;
|
4605
|
-
}
|
4673
|
+
return subscription;
|
4674
|
+
}
|
4675
|
+
|
4676
|
+
function PausableBufferedObservable(source, subject) {
|
4677
|
+
this.source = source;
|
4678
|
+
this.subject = subject || new Subject();
|
4679
|
+
this.isPaused = true;
|
4680
|
+
_super.call(this, subscribe);
|
4681
|
+
}
|
4682
|
+
|
4683
|
+
PausableBufferedObservable.prototype.pause = function () {
|
4684
|
+
if (this.isPaused === true){
|
4685
|
+
return;
|
4686
|
+
}
|
4687
|
+
this.isPaused = true;
|
4688
|
+
this.subject.onNext(false);
|
4689
|
+
};
|
4690
|
+
|
4691
|
+
PausableBufferedObservable.prototype.resume = function () {
|
4692
|
+
if (this.isPaused === false){
|
4693
|
+
return;
|
4694
|
+
}
|
4695
|
+
this.isPaused = false;
|
4696
|
+
this.subject.onNext(true);
|
4697
|
+
};
|
4698
|
+
|
4699
|
+
return PausableBufferedObservable;
|
4700
|
+
|
4701
|
+
}(Observable));
|
4702
|
+
|
4703
|
+
/**
|
4704
|
+
* Pauses the underlying observable sequence based upon the observable sequence which yields true/false,
|
4705
|
+
* and yields the values that were buffered while paused.
|
4706
|
+
* @example
|
4707
|
+
* var pauser = new Rx.Subject();
|
4708
|
+
* var source = Rx.Observable.interval(100).pausableBuffered(pauser);
|
4709
|
+
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
|
4710
|
+
* @returns {Observable} The observable sequence which is paused based upon the pauser.
|
4711
|
+
*/
|
4712
|
+
observableProto.pausableBuffered = function (subject) {
|
4713
|
+
return new PausableBufferedObservable(this, subject);
|
4606
4714
|
};
|
4607
4715
|
|
4608
4716
|
/**
|