Skip to content

Instantly share code, notes, and snippets.

View pavelosipov's full-sized avatar

Pavel Osipov pavelosipov

View GitHub Profile
@pavelosipov
pavelosipov / MRCDataStreamDataSource.h
Last active December 20, 2015 15:32
Custom NSInputStream
#import <POSInputStreamLibrary/POSBlobInputStreamDataSource.h>
@interface MRCDataStreamDataSource : NSObject <POSBlobInputStreamDataSource>
// The designated initializer.
- (nonnull instancetype)initWithData:(nonnull NSData *)data;
// Hidden initializers.
- (nonnull instancetype)init NS_UNAVAILABLE;
+ (nonnull instancetype)new NS_UNAVAILABLE;
@end
@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 {
@pavelosipov
pavelosipov / main.m
Created June 23, 2014 07:41
Implementing Visitor pattern on top of Objective-C categories
@interface NodeViewController : NSObject
@property (nonatomic, strong) Node *node;
- (id)initWithNode:(Node *)node;
@end
@implementation NodeViewController
- (id)initWithNode:(Node *)node {
NSParameterAssert(node);
if (self = [super init]) {
_node = node;