Skip to content

Commit

Permalink
Deprecating +sharedMathEvaluator.
Browse files Browse the repository at this point in the history
The name is wrong.  +shared* implies a singleton, which this is not.  The proper name is +defaultMathEvaluator (like +[NSFileManager defaultManager])
  • Loading branch information
davedelong committed Jan 4, 2014
1 parent 06e1b80 commit eb77e59
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 14 deletions.
2 changes: 1 addition & 1 deletion Command line demo/main.m
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

void listFunctions() {
printf("\nFunctions available:\n");
NSArray * functions = [[DDMathEvaluator sharedMathEvaluator] registeredFunctions];
NSArray * functions = [[DDMathEvaluator defaultMathEvaluator] registeredFunctions];
for (NSString * function in functions) {
printf("\t%s()\n", [function UTF8String]);
}
Expand Down
2 changes: 1 addition & 1 deletion DDMathParser/DDExpression.m
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ - (NSNumber *)evaluateWithSubstitutions:(NSDictionary *)substitutions evaluator:
}
- (DDExpression *)simplifiedExpression {
NSError *error = nil;
DDExpression *simplified = [self simplifiedExpressionWithEvaluator:[DDMathEvaluator sharedMathEvaluator] error:&error];
DDExpression *simplified = [self simplifiedExpressionWithEvaluator:[DDMathEvaluator defaultMathEvaluator] error:&error];
if (error != nil) {
NSLog(@"error: %@", error);
return nil;
Expand Down
3 changes: 2 additions & 1 deletion DDMathParser/DDMathEvaluator.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ typedef NSNumber* (^DDVariableResolver)(NSString *);
@property (nonatomic, copy) DDFunctionResolver functionResolver;
@property (nonatomic, copy) DDVariableResolver variableResolver;

+ (id)sharedMathEvaluator;
+ (id)sharedMathEvaluator __attribute__((deprecated("Use +defaultMathEvaluator instead")));
+ (instancetype)defaultMathEvaluator;

- (BOOL)registerFunction:(DDMathFunction)function forName:(NSString *)functionName;
- (void)unregisterFunctionWithName:(NSString *)functionName;
Expand Down
16 changes: 7 additions & 9 deletions DDMathParser/DDMathEvaluator.m
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,18 @@ @implementation DDMathEvaluator {
_DDFunctionEvaluator *_functionEvaluator;
}

static DDMathEvaluator * _sharedEvaluator = nil;

+ (id)sharedMathEvaluator {
return [self defaultMathEvaluator];
}

+ (instancetype)defaultMathEvaluator {
static DDMathEvaluator * _defaultEvaluator = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedEvaluator = [[DDMathEvaluator alloc] init];
_defaultEvaluator = [[DDMathEvaluator alloc] init];
});
return _sharedEvaluator;
return _defaultEvaluator;
}

- (id)init {
Expand All @@ -49,12 +53,6 @@ - (id)init {
return self;
}

- (void)dealloc {
if (self == _sharedEvaluator) {
_sharedEvaluator = nil;
}
}

#pragma mark - Properties

- (void)setUsesHighPrecisionEvaluation:(BOOL)usesHighPrecisionEvaluation {
Expand Down
2 changes: 1 addition & 1 deletion DDMathParser/NSString+DDMathParsing.m
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ - (NSNumber *)numberByEvaluatingStringWithSubstitutions:(NSDictionary *)substitu

- (NSNumber *)numberByEvaluatingStringWithSubstitutions:(NSDictionary *)substitutions error:(NSError **)error {
DDExpression * e = [DDExpression expressionFromString:self error:error];
return [[DDMathEvaluator sharedMathEvaluator] evaluateExpression:e withSubstitutions:substitutions error:error];
return [[DDMathEvaluator defaultMathEvaluator] evaluateExpression:e withSubstitutions:substitutions error:error];
}

@end
2 changes: 1 addition & 1 deletion DDMathParser/_DDFunctionExpression.m
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ - (DDExpression *)simplifiedExpressionWithEvaluator:(DDMathEvaluator *)evaluator
}

if (canSimplify) {
if (evaluator == nil) { evaluator = [DDMathEvaluator sharedMathEvaluator]; }
if (evaluator == nil) { evaluator = [DDMathEvaluator defaultMathEvaluator]; }

id result = [evaluator evaluateExpression:self withSubstitutions:nil error:error];

Expand Down

0 comments on commit eb77e59

Please sign in to comment.