Skip to content

Instantly share code, notes, and snippets.


Rui Peres RuiAAPeres

Block or report user

Report or block RuiAAPeres

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
RuiAAPeres / NSObject+FacebookImage
Created Aug 29, 2013
Just a small piece of code to get the basic info + profile picture
View NSObject+FacebookImage
+ (void(^)())facebookImageBlockWithCompletionHandler:(void(^)(id profilePicture, id userInformation, NSError *error))completionHandler
void(^facebookBlock)()= ^{[FBSession openActiveSessionWithReadPermissions:@[@"basic_info", @"email"]
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error)
if (!error)
View gist:7159304
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
RuiAAPeres / gist:7379148
Last active Dec 27, 2015
Returning a Class that complies to a given protocol
View gist:7379148
Class sportsFeedManager = (Class <RPSportsBoundryProtocol>)[RPInteractor sportsFeedManager];
[sportsFeedManager yahooSportsFeedWithCompletion:^(NSArray *sportsFeeds, NSError *error)
if (error)
// TODO: Handle the error;
View gist:7452910
void SwizzleClassMethod(Class c, SEL orig, SEL new) {
Method origMethod = class_getClassMethod(c, orig);
Method newMethod = class_getClassMethod(c, new);
c = object_getClass((id)c);
if(class_addMethod(c, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)))
class_replaceMethod(c, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
RuiAAPeres / gist:7656683
Last active Dec 29, 2015
The parseData is the private method, where the parsing actually works (NSData => NSDictionary). The other one parseLoginData (the public method), builds the model object from the Dictionary.
View gist:7656683
+ (void)parseLoginData:(NSData *)responseData withCompletionBlock:(MJDataSourceCompletionBlock)completionBlock
[self parseData:responseData withCompletionBlock:^(id response, MJError *error)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void)
MJLoginResponse *loginResponse = [[MJLoginResponse alloc] initWithLoginResponse:response];
dispatch_async(dispatch_get_main_queue(), ^(void)
RuiAAPeres / gist:8458663
Created Jan 16, 2014
Animating a layer with transition to the right + changing the contents
View gist:8458663
CAAnimationGroup *animationsGroup = [CAAnimationGroup animation];
CATransition *t = [CATransition animation];
t.type = kCATransitionPush;
t.subtype = kCATransitionFromRight;
t.duration = 1.0f;
id currentContents = _layer.contents;
_layer.contents = (id)([UIImage imageNamed:@"image2.jpg"].CGImage);
RuiAAPeres / gist:8905610
Last active Aug 29, 2015
RACSignal + Filter + Timer
View gist:8905610
// The goal is to make a server call every 5 minutes, but I want to make sure the user has at least moved 500 meters, how would go after this:
[RACObserve(self, userLocation) filter:^BOOL(CLLocation *newLocation)
return [newLocation distanceFromLocation:self.userLocation]>APH500Meters;
// I was thinking on creating a scheduler so I got this:
RACScheduler *scheduler = [RACScheduler schedulerWithPriority:RACSchedulerPriorityDefault];
RuiAAPeres / gist:11190505
Created Apr 22, 2014
Swizzling valueForKey: and objectForKey:
View gist:11190505
#import <objc/runtime.h>
@implementation NSDictionary (Swizzled)
static void swizzInstance(Class class, SEL originalSel, SEL newSel)
Method origMethod = class_getInstanceMethod(class, originalSel);
Method newMethod = class_getInstanceMethod(class, newSel);
method_exchangeImplementations(origMethod, newMethod);
RuiAAPeres / gist:11353385
Created Apr 27, 2014
Draft new spec ReactiveCocoa
View gist:11353385 do |s| = "ReactiveCocoa"
s.version = "2.3"
s.summary = "A framework for composing and transforming streams of values."
s.homepage = "" = { "Josh Abernathy" => "" }
s.source = { :git => "", :tag => "v#{s.version}" }
s.license = 'MIT'
s.description = "ReactiveCocoa (RAC) is an Objective-C framework for Functional Reactive Programming. It provides APIs for composing and transforming streams of values."
RuiAAPeres / gist:11402456
Last active Aug 29, 2015
Sam Page's SparkRecording Implementation with Facebook's Pop
View gist:11402456
//The calculations are coming from [here]( (thanks David!)
- (void)updateAnimations
CGFloat duration = self.duration * (1.f - [[self.progressLayers firstObject] strokeEnd]);
CGFloat strokeEndFinal = 1.f;
for (CAShapeLayer *progressLayer in self.progressLayers)
POPBasicAnimation *popEndAnimation = [POPBasicAnimation animation];
You can’t perform that action at this time.