Skip to content

Commit

Permalink
(slightly) better reflective support
Browse files Browse the repository at this point in the history
  • Loading branch information
krukow committed Sep 11, 2012
1 parent 54a40c7 commit e067804
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 8 deletions.
50 changes: 43 additions & 7 deletions calabash/Classes/FranklyServer/Operations/LPQueryAllOperation.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,27 @@ -(SEL)parseValuesFromArray:(NSArray *)arr withArgs:(NSMutableArray *)args
NSMutableString *selStr = [NSMutableString stringWithCapacity:32];
for (NSDictionary *selPart in arr)
{
NSObject *as = [selPart objectForKey:@"as"];
if (as)
{
NSMutableDictionary *mdict = [selPart mutableCopy];
[mdict removeObjectForKey:@"as"];
selPart = mdict;
}

NSString *key = [[selPart keyEnumerator] nextObject];

[selStr appendFormat:@"%@:",key];
[args addObject:[selPart objectForKey:key]];
id tgt = [selPart objectForKey:key];
if (as)
{
if ([@"UIColor" isEqual:as])
{
tgt = [[UIColor class] performSelector:NSSelectorFromString(tgt)];
}
//TODO more
}
[args addObject:tgt];
}
return NSSelectorFromString(selStr);
}
Expand Down Expand Up @@ -116,6 +134,24 @@ - (id) performWithTarget:(UIView*)_view error:(NSError **)error {
}
case '{': {
//not supported yet
if (strcmp(cType,"{CGPoint=ff}") == 0)
{
CGPoint point;
CGPointMakeWithDictionaryRepresentation((CFDictionaryRef)arg, &point);
[invocation setArgument:&point atIndex:i+2];
break;

}
else if (strcmp(cType,"{CGRect={CGPoint=ff}{CGSize=ff}}") == 0)
{
CGRect rect;
CGRectMakeWithDictionaryRepresentation((CFDictionaryRef)arg, &rect);
[invocation setArgument:&rect atIndex:i+2];
break;

}


@throw [NSString stringWithFormat: @"not yet support struct args: %@",sig];
}
}
Expand Down Expand Up @@ -182,10 +218,10 @@ - (id) performWithTarget:(UIView*)_view error:(NSError **)error {
CGRect *rec = (CGRect*)buffer;
return [NSDictionary dictionaryWithObjectsAndKeys:
[value description], @"description",
[NSNumber numberWithFloat:rec->origin.x],@"x",
[NSNumber numberWithFloat:rec->origin.y],@"y",
[NSNumber numberWithFloat:rec->size.width],@"width",
[NSNumber numberWithFloat:rec->size.height],@"height",
[NSNumber numberWithFloat:rec->origin.x],@"X",
[NSNumber numberWithFloat:rec->origin.y],@"Y",
[NSNumber numberWithFloat:rec->size.width],@"Width",
[NSNumber numberWithFloat:rec->size.height],@"Height",
nil];

}
Expand All @@ -194,8 +230,8 @@ - (id) performWithTarget:(UIView*)_view error:(NSError **)error {
CGPoint *point = (CGPoint*)buffer;
return [NSDictionary dictionaryWithObjectsAndKeys:
[value description], @"description",
[NSNumber numberWithFloat:point->x],@"x",
[NSNumber numberWithFloat:point->y],@"y",
[NSNumber numberWithFloat:point->x],@"X",
[NSNumber numberWithFloat:point->y],@"Y",
nil];

}
Expand Down
2 changes: 1 addition & 1 deletion calabash/Classes/FranklyServer/Routes/LPVersionRoute.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#import "LPVersionRoute.h"

#define kLPCALABASHVERSION @"0.9.100"
#define kLPCALABASHVERSION @"0.9.103"

@implementation LPVersionRoute

Expand Down

0 comments on commit e067804

Please sign in to comment.