Mat, That makes sense. The lambda form should work for now (I know it's not elegant). If this becomes important enough for you longer-term, take your patch and write it up as a pull-request (with specs please).
Sean Cribbs <[email protected]> Developer Advocate Basho Technologies, Inc. http://basho.com/ On Feb 10, 2011, at 12:28 PM, Mat Ellis wrote: > Yes, I got NameError: undefined method `foo' for class `Class' when I tried > that. > > M. > > On Feb 10, 2011, at 6:48 AM, Sean Cribbs wrote: > >> Mat, >> >> Did you try method(:foo) ? Method objects respond to :call. >> >> Sean Cribbs <[email protected]> >> Developer Advocate >> Basho Technologies, Inc. >> http://basho.com/ >> >> On Feb 10, 2011, at 8:29 AM, Mat Ellis wrote: >> >>> For anyone else trying to do this, I couldn't find any docs on how to do >>> dynamic default values. >>> >>> Objective: add an auto-generated UUID field to a Click model using >>> Twitter's simple_uuid gem. >>> >>> Class Click >>> include Ripple::Document >>> include SimpleUUID >>> >>> property :uuid, String, :default => foo >>> key on :uuid >>> >>> def foo >>> UUID.new.to_guid >>> end >>> end >>> >>> This just gave me "foo" every time: >>> >>> Changing default to UUID.new.to_guid gave me a nice uuid value but the same >>> one each time. >>> >>> I had to make the default property lambda { UUID.new.to_guid } for it to >>> work. >>> >>> Many other gems/plugins have a convention that if your value in these cases >>> is a symbol it treats it as a local function. This would mean changing the >>> default function in the Ripple gem to something like (untested and >>> untried!): >>> >>> def default >>> default = options[:default] >>> >>> return nil if default.nil? >>> if default.is_a? :symbol >>> type_cast(self.respond_to?(:default) ? self.default : nil) >>> else >>> type_cast(default.respond_to?(:call) ? default.call : default) >>> end >>> end >>> >>> M. >>> >>> >>> >>> _______________________________________________ >>> riak-users mailing list >>> [email protected] >>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> > _______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
