Skip to content

Commit

Permalink
Changed normalization functions to use block iteration.
Browse files Browse the repository at this point in the history
  • Loading branch information
pmarkowsky committed Sep 22, 2021
1 parent 9280d92 commit f0a81ff
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions Source/santametricservice/Formats/SNTMetricRawJSONFormat.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@ - (instancetype)init {
- (NSArray *)normalizeArray:(NSArray *)arr {
NSMutableArray *normalized = [NSMutableArray arrayWithArray:arr];

for (int i = 0; i < [arr count]; i++) {
if ([arr[i] isKindOfClass:[NSArray class]]) {
normalized[i] = [self normalizeArray:(NSArray *)arr[i]];
} else if ([arr[i] isKindOfClass:[NSDictionary class]]) {
normalized[i] = [self normalize:(NSDictionary *)arr[i]];
[normalized enumerateObjectsUsingBlock:^(id value, NSUInteger index, BOOL *stop) {
if ([value isKindOfClass:[NSDate class]]) {
normalized[index] = [self->_dateFormatter stringFromDate:(NSDate *)value];
} else if ([value isKindOfClass:[NSArray class]]) {
normalized[index] = [self normalizeArray:(NSArray *)value];
} else if ([value isKindOfClass:[NSDictionary class]]) {
normalized[index] = [self normalize:(NSDictionary *)value];
}
}
}];

return normalized;
}
Expand All @@ -50,16 +52,15 @@ - (NSDictionary *)normalize:(NSDictionary *)metrics {
// to JSON.
NSMutableDictionary *normalizedMetrics = [NSMutableDictionary dictionaryWithDictionary:metrics];

for (NSString *key in metrics) {
const id object = [metrics objectForKey:key];
if ([object isKindOfClass:[NSDate class]]) {
normalizedMetrics[key] = [self->_dateFormatter stringFromDate:(NSDate *)object];
} else if ([object isKindOfClass:[NSDictionary class]]) {
normalizedMetrics[key] = [self normalize:metrics[key]];
} else if ([object isKindOfClass:[NSArray class]]) {
normalizedMetrics[key] = [self normalizeArray:(NSArray *)object];
[metrics enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {
if ([value isKindOfClass:[NSDate class]]) {
normalizedMetrics[key] = [self->_dateFormatter stringFromDate:(NSDate *)value];
} else if ([value isKindOfClass:[NSDictionary class]]) {
normalizedMetrics[key] = [self normalize:(NSDictionary *)value];
} else if ([value isKindOfClass:[NSArray class]]) {
normalizedMetrics[key] = [self normalizeArray:(NSArray *)value];
}
}
}];

return (NSDictionary *)normalizedMetrics;
}
Expand Down

0 comments on commit f0a81ff

Please sign in to comment.