ActiveModelWarnings
Compliant validtions for ActiveModel. This is useful when you want to define optional validations for a resource and keep it valid.
Adds compliant? and warnings methods to ActiveModel::Validations that are similar to valid? and errors but for warnings.
Installation
Add this line to your application's Gemfile:
gem 'active_model_warnings'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install active_model_warnings
Usage
class Resource
include ActiveModel::Validations
attr_accessor :password
validate :blank_password # may cause an error
validate :password_length # may cause a warning
def initialize(password)
@password = password
end
private
def blank_password
errors.add(:password, 'should not be blank') if password.length == 0
end
def password_length
warnings.add(:password, "min length should be 5") if password.length < 5
end
end
resource = Resource.new('safe')
resouce.valid?
# => true
resource.compliant?
# => false
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/babasbot/active_model_warnings. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
TODO
- Test with
ActiveRecord. - Support for
ActiveModel::Validations::HelperMethods.
License
The gem is available as open source under the terms of the MIT License.