Skip to content

Instantly share code, notes, and snippets.

View pavelosipov's full-sized avatar

Pavel Osipov pavelosipov

View GitHub Profile
@pavelosipov
pavelosipov / NSInputStream+MRC.m
Last active December 20, 2015 15:31
Custom NSInputStream factory method
@interface NSInputStream (MRC)
+ (instancetype)mrc_inputStreamWithData:(NSData *)data;
@end
@implementation NSInputStream (MRC)
+ (instancetype)mrc_inputStreamWithData:(NSData *)data {
MRCDataStreamDataSource *dataSource = [[MRCDataStreamDataSource alloc] initWithData:data];
POSBlobInputStream *stream = [[POSBlobInputStream alloc] initWithDataSource:dataSource];
stream.shouldNotifyCoreFoundationAboutStatusChange = NO;
return stream;
@pavelosipov
pavelosipov / NSURLRequestDemo.m
Last active December 19, 2015 21:13
Embedding NSInputStream into NSURLRequest
- (NSURLSessionUploadTask *)uploadData:(NSData *)data toURL:(NSURL *)URL {
NSMutableHTTPRequest *request = [[NSMutableHTTPRequest alloc] initWithURL:URL];
request.HTTPMethod = @"PUT";
request.HTTPBodyStream = [NSInputStream inputStreamWithData:data];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionUploadTask *task = [session uploadTaskWithStreamedRequest:request]
return task;
}
@pavelosipov
pavelosipov / open_word.m
Created July 3, 2015 10:25
MS Word Integration
// CloudShare SharePoint
NSString *kCSFolderURL = @"http://uvo13v3ow3jmtx8iunr.env.cloudshare.com/Shared Documents/";
NSString *kCSFilename = @"85b5a608d1e533af644251901044da15.docx";
// Mail.Ru SharePoint
NSString *kMRFolderURL = @"https://owa.attachmail.ru/Shared Documents/";
NSString *kMRFilename = @"1.docx";
// Target SharePoint
BOOL useMRSP = YES;
@pavelosipov
pavelosipov / Endpoint.m
Last active August 29, 2015 14:23
Endpoints
@protocol CMRRequest <NSObject>
@property (nonatomic, readonly) id CMRHTTPOptions;
- (NSMutableURLRequest *)buildRequestWithBaseURL:(NSURL* )baseURL;
@end
@protocol CMREndpoint <NSObject>
@pavelosipov
pavelosipov / main.m
Last active August 29, 2015 14:22
Refresh profile
- (void)refreshProfile {
RACSignal *fetchSignal = [[self fetchProfile] replayLast];
[fetchSignal subscribeNext:^(id x) {
// update profile
// goto itunes
// etc.
}];
[[fetchSignal filter:^BOOL(id value) {
return [value isEqualToNumber:@(499)];
}] subscribeNext:^(id x) {
@pavelosipov
pavelosipov / sketch.m
Created June 5, 2015 08:09
Resend profile requests
- (RACSignal *)updateState {
return [[self updateCheckWithDelay:0.0f] catch:^RACSignal *(NSError *error) {
[[self updateCheckUntilSucceded] subscribeNext:^(id x) {
NSLog(@"new profile: %@", x);
}];
return [RACSignal error:error];
}];
}
- (RACSignal *)updateCheckWithDelay:(NSTimeInterval)delaySec {