This gem provides sexy validations/ validators functionality for models. It was heavily inspired by the new validators in rails 3. Basically it's a replacement for “inlcude ActiveModel::Validations”, because those are strangely complex and don't work together properly with sequel for example.
Simply install it as any other gem:
gem install sexy_validations
Or when using bundler, add it got your Gemfile:
In your model:
class User include SexyValidations validates :name, :presence => true, :length => 2..20 validates :description, :length => 0..2000 def valid? validate! errors.empty? end end
You can also pass a symbol, which will be used a a method name:
class User validates :special def special_validation if 5 > 9 errors.add(:boah, "ruby seems to be buggy....") end end end
And even a block is accepted
class User validates do if 5 > 9 errors.add(:boah, "ruby seems to be buggy....") end end end
Please have a look at my sequel_sexy_validations gem (depends on this one). This gem contains extra validators like Uniqueness.
Use I18n for messages
Source documentation (rdoc)
If you'd like to contribute a feature or bugfix: Thanks! To make sure your fix/feature has a high chance of being included, please read the following guidelines:
Fork the project.
Make your feature addition or bug fix.
Add tests for it. This is important so we don’t break anything in a future version unintentionally.
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
Send me a pull request. Bonus points for topic branches.