| // |
| // NSString+RACSupport.m |
| // ReactiveCocoa |
| // |
| // Created by Josh Abernathy on 5/11/12. |
| // Copyright (c) 2012 GitHub, Inc. All rights reserved. |
| // |
| |
| #import "NSString+RACSupport.h" |
| #import "RACReplaySubject.h" |
| #import "RACScheduler.h" |
| |
| @implementation NSString (RACSupport) |
| |
| + (RACSignal *)rac_readContentsOfURL:(NSURL *)URL usedEncoding:(NSStringEncoding *)encoding scheduler:(RACScheduler *)scheduler { |
| NSCParameterAssert(scheduler != nil); |
| |
| RACReplaySubject *subject = [RACReplaySubject subject]; |
| [subject setNameWithFormat:@"+rac_readContentsOfURL: %@ usedEncoding:scheduler: %@", URL, scheduler]; |
| |
| [scheduler schedule:^{ |
| NSError *error = nil; |
| NSString *string = [NSString stringWithContentsOfURL:URL usedEncoding:encoding error:&error]; |
| if(string == nil) { |
| [subject sendError:error]; |
| } else { |
| [subject sendNext:string]; |
| [subject sendCompleted]; |
| } |
| }]; |
| |
| return subject; |
| } |
| |
| @end |