trying to get the code to format right, here it is again (hopefully better!):
class MyDocument < NSDocument
attr_accessor :loadedmodel, :root #outlet to model field of controller
# Name of nib containing document window
def windowNibName
'MyDocument'
end
# Document data representation for saving (return NSData)
def dataOfType(type, error:outError)
outError.assign(NSError.errorWithDomain(NSOSStatusErrorDomain, code:-4, userInfo:nil))
NSKeyedArchiver.archivedDataWithRootObject(@root.model)
end
# Read document from data (return non-nil on success)
def readFromData(data, ofType:type, error:outError)
outError.assign(NSError.errorWithDomain(NSOSStatusErrorDomain, code:-4, userInfo:nil))
@loadedmodel = NSKeyedUnarchiver.unarchiveObjectWithData(data)
end
# Return lowercase 'untitled', to comply with HIG
def displayName
fileURL ? super : super.sub(/^[[:upper:]]/) {|s| s.downcase}
end
def windowControllerDidLoadNib(aController)
super(aController)
@root.model = @loadedmodel
NSLog("model loaded")
end
end