espagram/Espagram/Verb+Create.m
2012-12-20 18:09:11 +01:00

64 lines
2.1 KiB
Objective-C

//
// Verb+Create.m
// Espagram
//
// Created by Abel Fokkinga on 11/16/12.
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
//
#import "Verb+Create.h"
@implementation Verb (Create)
+ (void) addVerb:(NSString *)newVerb andMeaning:(NSString *)meaning toLesson:(Lesson *)lesson
{
Verb * verb = [NSEntityDescription insertNewObjectForEntityForName:@"Verb" inManagedObjectContext:[lesson managedObjectContext]];
newVerb = [newVerb lowercaseString];
// Check first if the lessons already contains this verb
for ( Verb * v in lesson.verbs) {
if ( [newVerb isEqualToString:v.verb]) {
if (meaning == nil)
return;
else if ([meaning isEqualToString:v.meaning])
return;
}
}
if ( [lesson.conjugator isEqualToString:@"Spanish"]) {
if ( newVerb.length >= 2 ) {
NSString *verbExit = [newVerb substringFromIndex:newVerb.length - 2];
if ( ![verbExit isEqualToString:@"ar"] &&
![verbExit isEqualToString:@"er"] &&
![verbExit isEqualToString:@"ir"] &&
![verbExit isEqualToString:@"ír"] &&
![verbExit isEqualToString:@"se"] ) {
// Not an existing Spanish verb
return;
}
if ( [verbExit isEqualToString:@"se"] && newVerb.length >= 4 ) {
verbExit = [[newVerb substringFromIndex:newVerb.length - 4] substringToIndex:2];
if ( ![verbExit isEqualToString:@"ar"] &&
![verbExit isEqualToString:@"er"] &&
![verbExit isEqualToString:@"ir"] &&
![verbExit isEqualToString:@"ír"] ) {
// Not an existing Spanish verb
return;
}
}
} else {
// Verb should be longer than 2 characters
return;
}
}
NSLog(@"Adding word %@", newVerb);
verb.verb = newVerb;
verb.meaning = meaning;
[lesson addVerbsObject:verb];
[[lesson managedObjectContext] save:nil];
};
@end