framework
'Foundation'
framework
'CoreData'
DB_NAME
=
"Question"
ENTITY_NAME
=
"Question"
class
DB
def
managedObjectModel
if
(
@managedObjectModel
!=
nil
)
return
@managedObjectModel
end
modelURL =
NSURL
.URLWithString
Dir
.pwd+
"/#{DB_NAME}.momd"
@managedObjectModel
= NSManagedObjectModel.alloc.initWithContentsOfURL(modelURL)
return
@managedObjectModel
end
def
persistentStoreCoordinator
if
(
@persistentStoreCoordinator
!=
nil
)
return
@persistentStoreCoordinator
end
storeURL =
NSURL
.fileURLWithPath
Dir
.pwd+
"/#{DB_NAME}.sqlite"
error = Pointer.
new
(
:object
)
@persistentStoreCoordinator
= NSPersistentStoreCoordinator.alloc.initWithManagedObjectModel(
self
.managedObjectModel)
if
(!
@persistentStoreCoordinator
.addPersistentStoreWithType(NSSQLiteStoreType, configuration
:nil
,
URL
:storeURL
, options
:nil
, error
:error
))
puts
"Unresolved error #{error}, #{error.userInfo}"
abort()
end
return
@persistentStoreCoordinator
end
def
managedObjectContext
if
(
@managedObjectContext
!=
nil
)
return
@managedObjectContext
end
coordinator =
self
.persistentStoreCoordinator
if
(coordinator !=
nil
)
@managedObjectContext
= NSManagedObjectContext.alloc.init
@managedObjectContext
.setPersistentStoreCoordinator(coordinator)
end
return
@managedObjectContext
end
def
saveContext
error = Pointer.
new
(
:object
)
managedObjectContext =
self
.managedObjectContext
if
(managedObjectContext !=
nil
)
if
(managedObjectContext.hasChanges || !managedObjectContext.save(error))
puts
"Unresolved error #{error}, #{error.userInfo}"
abort()
end
end
end
end
`/Developer/usr/bin/momc
if
File
.exist?
"#{DB_NAME}.sqlite"
File
.delete
"#{DB_NAME}.sqlite"
end
db =
DB
.
new
p model = db.managedObjectModel
var = {
"YEAR"
=>
2010
}
request = model.fetchRequestFromTemplateWithName(
"QuestionsWithYear"
, substitutionVariables
:var
)
p request.predicate.predicateFormat
db.saveContext