[macruby-changes] [4111] MacRuby/trunk/misc/xcode-templates/Project Templates/Application/ MacRuby Core Data Application

source_changes at macosforge.org source_changes at macosforge.org
Mon May 17 12:09:10 PDT 2010


Revision: 4111
          http://trac.macosforge.org/projects/ruby/changeset/4111
Author:   pthomson at apple.com
Date:     2010-05-17 12:09:08 -0700 (Mon, 17 May 2010)
Log Message:
-----------
Modifying the code to the Core Data template to make it more idiomatic.

Modified Paths:
--------------
    MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/AppDelegate.rb
    MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/rb_main.rb

Modified: MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/AppDelegate.rb
===================================================================
--- MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/AppDelegate.rb	2010-05-15 03:32:10 UTC (rev 4110)
+++ MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/AppDelegate.rb	2010-05-17 19:09:08 UTC (rev 4111)
@@ -10,24 +10,19 @@
   attr_writer :window
 
   # Returns the support folder for the application, used to store the Core Data
-  # store file.  This code uses a folder named "MyGreatApp" for
+  # store file.  This code uses a folder named "\xC7PROJECTNAME\xC8" for
   # the content, either in the NSApplicationSupportDirectory location or (if the
   # former cannot be found), the system's temporary directory.
   def applicationSupportFolder
     paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, true)
-    basePath = (paths.count > 0) ? paths[0] : NSTemporaryDirectory()
-    return basePath.stringByAppendingPathComponent("\xC7PROJECTNAME\xC8")
+    basePath = paths[0] || NSTemporaryDirectory()
+    basePath.stringByAppendingPathComponent("\xC7PROJECTNAME\xC8")
   end
 
   # Creates and returns the managed object model for the application 
   # by merging all of the models found in the application bundle.
   def managedObjectModel
-    if @managedObjectModel
-      return @managedObjectModel
-    end
-    
-    @managedObjectModel = NSManagedObjectModel.mergedModelFromBundles(nil)
-    return @managedObjectModel
+    @managedObjectModel ||= NSManagedObjectModel.mergedModelFromBundles(nil)
   end
 
 
@@ -36,46 +31,44 @@
   # store for the application to it.  (The folder for the store is created, 
   # if necessary.)
   def persistentStoreCoordinator
-    if @persistentStoreCoordinator
-      return @persistentStoreCoordinator
-    end
-
-    error = Pointer.new_with_type('@')
+    unless @persistentStoreCoordinator
+      error = Pointer.new_with_type('@')
     
-    fileManager = NSFileManager.defaultManager
-    applicationSupportFolder = self.applicationSupportFolder
+      fileManager = NSFileManager.defaultManager
+      applicationSupportFolder = self.applicationSupportFolder
     
-    if !fileManager.fileExistsAtPath(applicationSupportFolder, isDirectory:nil)
-      fileManager.createDirectoryAtPath(applicationSupportFolder, attributes:nil)
-    end
+      unless fileManager.fileExistsAtPath(applicationSupportFolder, isDirectory:nil)
+        fileManager.createDirectoryAtPath(applicationSupportFolder, attributes:nil)
+      end
     
-    url = NSURL.fileURLWithPath(applicationSupportFolder.stringByAppendingPathComponent("\xC7PROJECTNAME\xC8.xml"))
-    @persistentStoreCoordinator = NSPersistentStoreCoordinator.alloc.initWithManagedObjectModel(self.managedObjectModel)
-    if !@persistentStoreCoordinator.addPersistentStoreWithType(NSXMLStoreType, configuration:nil, URL:url, options:nil, error:error)
-      NSApplication.sharedApplication.presentError(error[0])
+      url = NSURL.fileURLWithPath(applicationSupportFolder.stringByAppendingPathComponent("\xC7PROJECTNAME\xC8.xml"))
+      @persistentStoreCoordinator = NSPersistentStoreCoordinator.alloc.initWithManagedObjectModel(self.managedObjectModel)
+      unless @persistentStoreCoordinator.addPersistentStoreWithType(NSXMLStoreType, configuration:nil, URL:url, options:nil, error:error)
+        NSApplication.sharedApplication.presentError(error[0])
+      end
     end
 
-    return @persistentStoreCoordinator
+    @persistentStoreCoordinator
   end
 
   # Returns the managed object context for the application (which is already
   # bound to the persistent store coordinator for the application.) 
   def managedObjectContext
-    return @managedObjectContext if @managedObjectContext
-    
-    coordinator = self.persistentStoreCoordinator
-    if coordinator
-      @managedObjectContext = NSManagedObjectContext.alloc.init
-      @managedObjectContext.setPersistentStoreCoordinator(coordinator)
+    unless @managedObjectContext
+      coordinator = self.persistentStoreCoordinator
+      if coordinator
+        @managedObjectContext = NSManagedObjectContext.new
+        @managedObjectContext.setPersistentStoreCoordinator(coordinator)
+      end
     end
     
-    return @managedObjectContext
+    @managedObjectContext
   end
 
   # Returns the NSUndoManager for the application.  In this case, the manager
   # returned is that of the managed object context for the application.
   def windowWillReturnUndoManager(window)
-    return self.managedObjectContext.undoManager
+    self.managedObjectContext.undoManager
   end
 
   # Performs the save action for the application, which is to send the save:
@@ -83,7 +76,7 @@
   # are presented to the user.
   def saveAction(sender)
     error = Pointer.new_with_type('@')
-    if !self.managedObjectContext.save(error)
+    unless self.managedObjectContext.save(error)
       NSApplication.sharedApplication.presentError(error[0])
     end
   end
@@ -95,9 +88,9 @@
     error = Pointer.new_with_type('@')
     reply = NSTerminateNow
     
-    if self.managedObjectContext
-      if self.managedObjectContext.commitEditing
-        if self.managedObjectContext.hasChanges and !self.managedObjectContext.save(error)
+    if managedObjectContext
+      if managedObjectContext.commitEditing
+        if managedObjectContext.hasChanges && (not managedObjectContext.save(error))
           # This error handling simply presents error information in a panel with an 
           # "Ok" button, which does not include any attempt at error recovery (meaning, 
           # attempting to fix the error.)  As a result, this implementation will 
@@ -123,7 +116,7 @@
       end
     end
     
-    return reply
+    reply
   end
 
 end

Modified: MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/rb_main.rb
===================================================================
--- MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/rb_main.rb	2010-05-15 03:32:10 UTC (rev 4110)
+++ MacRuby/trunk/misc/xcode-templates/Project Templates/Application/MacRuby Core Data Application/rb_main.rb	2010-05-17 19:09:08 UTC (rev 4111)
@@ -14,9 +14,7 @@
 main = File.basename(__FILE__, File.extname(__FILE__))
 dir_path = NSBundle.mainBundle.resourcePath.fileSystemRepresentation
 Dir.glob(File.join(dir_path, '*.{rb,rbo}')).map { |x| File.basename(x, File.extname(x)) }.uniq.each do |path|
-  if path != main
-    require(path)
-  end
+  require(path) unless path == main
 end
 
 # Starting the Cocoa main loop.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100517/920b8244/attachment.html>


More information about the macruby-changes mailing list