Hi,
ditz 0.5 wouldn't run on my 1.9.2 installation.
There were two problems..
1) require 'sha1' needed to be require 'digest/sha1'
2) ruby complained about "multiple assignment in conditional" in several
cases where you were doing something like "if (found,x = generate..())
&& found".
I've attached a patch which I believe fixes these issues.
I hope you'll incorporate a fix (mine or otherwise) and re-release the
gem so I can run the blessed version, instead of my local fork. :)
Thanks,
Steve
--- model.rb Tue Feb 22 10:43:51 2011
+++ model.rb-fixed Tue Feb 22 10:41:46 2011
@@ -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))
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))
x
else
raise ModelError, "missing required field #{name}"
@@ -240,13 +240,13 @@
## returns [success, value] (because a successful value can be ni)
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]
+ nil
end
end
_______________________________________________
ditz-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ditz-talk