}
- (NSMutableDictionary *)_queryParameters {
- if(!self->queryParameters) {
- WORequest *req;
- NSString *uri;
- NSRange r;
+ // TODO: this code is weird, should use WORequest methods for parsing
+ WORequest *req;
+ NSString *uri;
+ NSRange r;
+
+ if (self->queryParameters)
+ return self->queryParameters;
+
+ self->queryParameters = [[NSMutableDictionary alloc] initWithCapacity:8];
- self->queryParameters = [[NSMutableDictionary alloc] initWithCapacity:8];
+ req = [[self context] request];
+ uri = [req uri];
+ r = [uri rangeOfString:@"?" options:NSBackwardsSearch];
+ if (r.length > 0) {
+ NSString *qs;
- req = [[self context] request];
- uri = [req uri];
- r = [uri rangeOfString:@"?" options:NSBackwardsSearch];
- if (r.length > 0) {
- NSString *qs;
-
- qs = [uri substringFromIndex:NSMaxRange(r)];
- [self _parseQueryString:qs];
- }
- }
+ qs = [uri substringFromIndex:NSMaxRange(r)];
+ [self _parseQueryString:qs];
+ }
return self->queryParameters;
}
}
- (void)setSelectedDateQueryParameter:(NSCalendarDate *)_newDate
- inDictionary:(NSMutableDictionary *)_qp;
+ inDictionary:(NSMutableDictionary *)_qp;
{
if(_newDate != nil)
[_qp setObject:[self dateStringForDate:_newDate] forKey:@"day"];
}
- (NSString *)completeHrefForMethod:(NSString *)_method {
+ WOContext *ctx;
NSDictionary *qp;
- NSString *qs;
-
+ NSString *qs, *qps;
+
qp = [self queryParameters];
if([qp count] == 0)
return _method;
-
- qs = [[self context] queryStringFromDictionary:qp];
+
+ ctx = [self context];
+ qps = [ctx queryPathSeparator];
+ [ctx setQueryPathSeparator:@"&"];
+ qs = [ctx queryStringFromDictionary:qp];
+ [ctx setQueryPathSeparator:qps];
return [_method stringByAppendingFormat:@"?%@", qs];
}