Only in ./bin: .idea
diff -ur /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/bin/ditz ./bin/ditz
--- /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/bin/ditz	2011-02-23 01:42:32.000000000 -0800
+++ ./bin/ditz	2011-02-23 01:14:53.000000000 -0800
@@ -1,4 +1,4 @@
-#!/usr/bin/ruby1.8
+#!/usr/bin/ruby
 
 ## requires are split in two for efficiency reasons: ditz should be really
 ## fast when using it for completion.
Only in .: ditz-0.5-ruby192.patch
diff -ur /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/lib/lowline.rb ./lib/lowline.rb
--- /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/lib/lowline.rb	2011-02-23 01:42:32.000000000 -0800
+++ ./lib/lowline.rb	2011-02-23 01:36:34.000000000 -0800
@@ -61,7 +61,7 @@
     cmd = "#{editor} #{f.path.inspect}"
 
     mtime = File.mtime f.path
-    system cmd or raise Error, "cannot execute command: #{cmd.inspect}"
+    system cmd or raise RuntimeError, "cannot execute command: #{cmd.inspect}"
 
     File.mtime(f.path) == mtime ? nil : f.path
   end
diff -ur /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/lib/model-objects.rb ./lib/model-objects.rb
--- /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/lib/model-objects.rb	2011-02-23 01:42:32.000000000 -0800
+++ ./lib/model-objects.rb	2011-02-23 01:29:05.000000000 -0800
@@ -36,7 +36,7 @@
 class Project < ModelObject
   class Error < StandardError; end
 
-  field :name, :prompt => "Project name", :default_generator => lambda { File.basename(Dir.pwd) }
+  field :name, :prompt => "Project name", :default_generator => Proc.new { File.basename(Dir.pwd) }
   field :version, :default => Ditz::VERSION, :ask => false
   field :components, :multi => true, :generator => :get_components
   field :releases, :multi => true, :ask => false
@@ -143,10 +143,10 @@
   field :type, :generator => :get_type
   field :component, :generator => :get_component
   field :release, :generator => :get_release
-  field :reporter, :prompt => "Issue creator", :default_generator => lambda { |config, proj| config.user }
+  field :reporter, :prompt => "Issue creator", :default_generator => Proc.new { |config, proj| config.user }
   field :status, :ask => false, :default => :unstarted
   field :disposition, :ask => false
-  field :creation_time, :ask => false, :generator => lambda { Time.now }
+  field :creation_time, :ask => false, :generator => Proc.new { Time.now }
   field :references, :ask => false, :multi => true
   field :id, :ask => false, :generator => :make_id
   changes_are_logged
@@ -203,7 +203,7 @@
 
   ## make a unique id
   def make_id config, project
-    SHA1.hexdigest [Time.now, rand, creation_time, reporter, title, desc].join("\n")
+    Digest::SHA1.hexdigest [Time.now, rand, creation_time, reporter, title, desc].join("\n")
   end
 
   def sort_order; [STATUS_SORT_ORDER[status], creation_time] end
diff -ur /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/lib/model.rb ./lib/model.rb
--- /opt/local/lib/ruby1.9/gems/1.9.1/gems/ditz-0.5/lib/model.rb	2011-02-23 01:42:32.000000000 -0800
+++ ./lib/model.rb	2011-02-23 01:46:14.000000000 -0800
@@ -1,5 +1,5 @@
 require 'yaml'
-require 'sha1'
+require 'digest/sha1'
 require "lowline"; include Lowline
 require "util"
 
@@ -195,7 +195,7 @@
       @fields.each do |name, field_opts|
         val = if opts[:with] && opts[:with][name]
           opts[:with][name]
-        elsif(found, x = generate_field_value(o, field_opts, generator_args)) && found
+        elsif (x = generate_field_value(o, field_opts, generator_args)) != :generate_failed
           x
         else
           q = field_opts[:prompt] || name.to_s.capitalize
@@ -224,7 +224,7 @@
       @fields.each do |name, opts|
         val = if vals[name]
           vals[name]
-        elsif(found, x = generate_field_value(o, opts, generator_args)) && found
+        elsif (x = generate_field_value(o, opts, generator_args)) != :generate_failed
           x
         else
           raise ModelError, "missing required field #{name}"
@@ -236,17 +236,17 @@
 
   private
 
-    ## get the value for a field if it can be automatically determined
-    ## returns [success, value] (because a successful value can be ni)
+    ## get the value for a field if it can be automatically determined
+    ## returns value or :generate_failed (because a successful value can be nil)
     def generate_field_value o, opts, args
       if opts[:generator].is_a? Proc
-        [true, opts[:generator].call(*args)]
+        opts[:generator].call(*args)
       elsif opts[:generator]
-        [true, o.send(opts[:generator], *args)]
+        o.send(opts[:generator], *args)
       elsif opts[:ask] == false # nil counts as true here
-        [true, opts[:default] || (opts[:multi] ? [] : nil)]
+        opts[:default] || (opts[:multi] ? [] : nil)
       else
-        [false, nil]
+        :generate_failed
       end
     end
 
