About

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.

Install

Simply install it as any other gem:

gem install sexy_validations

Or when using bundler, add it got your Gemfile:

gem sexy_validations

Quick Start

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

Additional sequel specific validators

Please have a look at my sequel_sexy_validations gem (depends on this one). This gem contains extra validators like Uniqueness.

Todo

  • Use I18n for messages

  • Source documentation (rdoc)

  • Tests

Contributing

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:

  1. Fork the project.

  2. Make your feature addition or bug fix.

  3. Add tests for it. This is important so we don’t break anything in a future version unintentionally.

  4. 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)

  5. Send me a pull request. Bonus points for topic branches.