Ah, the link :
http://ruby-sequel.googlecode.com/svn/trunk/model_plugins/not_naughty...
On 11 Feb., 14:41, "Florian Aßmann" <[EMAIL PROTECTED]> wrote:
> Sorry to repost, but I forgot that Google breaks code - hope I got the
> length...
>
> NotNaughty hopefully doesn't cause any further confusion.
>
> So what does it? Ahh well, it ensures that your Classes are not
> naughty and provides you with almost complete validation API.
> This Plugin/Gem is all for validation and replaces Assistance
> validations functionality with fully armed ones (that sounds fishy).
>
> After your Model got:
>
> is :not_naughty
>
> ... it does everything that assintance did and more. The Builder is
> much more flexible now:
>
> # remembers the attributes given, forget about validates_ and _of
> validates(:firstname, :lastname) { presence and
> length :within=>4..33 }
> # remembers conditions
> validates(:if => :necessary?) { presence_of :money }
> # chains conditions
> validates(:unless => [:cond1, proc {|r| r.cond2}]
> { presence_of :email }
>
> Yeah, the validations have conditions now - and states:
>
> validates(:on => :update) { length_of :username, :minimum => 4 }
> validates_length_of :password,
> :minimum => 6, :on => :create,
> :message => '#{"%s".humanize} must be 6 characters long.'
>
> Even more beautiful errors messages you get now with:
>
> # "Password must be 6 characters long."
> record.errors.on(:password)
> # ["Password must be 6 characters long."]
> record.errors.full_messages
>
> Raise or don't raise exceptions if the record isn't valid:
>
> invalid_record.save
>
> ... goes boom per default, unless:
>
> is :not_naughty, :without => :exception
> invalid_record.save # returns false now
>
> You can even validate before other method calls:
>
> validated_before :update, :without => :exception
>
> You got before_validate and after_validate hooks unless you turn them
> of:
>
> is :not_naughty, :without => :hooks
>
> Inheritance?
>
> class Sequel::Model
> is :not_naughty
> end
>
> class Person < Sequel::Model
> validates(:firstname, :lastname) { presence and
> length :within=>4..33 }
> end
>
> class Employee < Person
> # inherits validations from Person
> end
>
> class Company < Person
> validates_length_of :employees, :minimum => 1
> def employees
> # must fetch employess to an object that does respond to :length
> end
> end
>
> Should do what you expect...
>
> Cheers
> Florian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sequel-talk?hl=en
-~----------~----~----~----~------~----~------~--~---