module Fend::Plugins::ValidationHelpers

`validation_helpers` plugin provides additional `Param` methods for common validation cases.

plugin :validation_helpers

validate do |i|
  i.params(:username) do |username|
    username.validate_presence
    username.validate_max_length(20)
    username.validate_type(String)
  end
end

You can find list of all available helpers in ParamMethods.

## Overriding default messages

You can override default messages by specifying `:default_messages` options when loading the plugin

plugin :validation_helpers, default_messages: {
  exact_length: ->(length) { I18n.t("errors.exact_length", length: length) },
  presence: "cannot be blank",
  type: ->(type) { "is not of valid type. Must be #{type.to_s.downcase}" }
}

Custom messages can be defined by passing `:message` option to validation helper method:

username.validate_max_length(20, message: "must be shorter than 20 chars")

Constants

ACCEPTABLE
DEFAULT_MESSAGES
UNSUPPORTED_TYPE

Public Class Methods

configure(validation, opts = {}) click to toggle source
# File lib/fend/plugins/validation_helpers.rb, line 43
def self.configure(validation, opts = {})
  validation.opts[:validation_default_messages] = (validation.opts[:validation_default_messages] || {}).merge(opts[:default_messages] || {})
end
load_dependencies(validation, *args, &block) click to toggle source

depends on ValueHelpers plugin, which provides methods that are used in certain validation helpers

# File lib/fend/plugins/validation_helpers.rb, line 39
def self.load_dependencies(validation, *args, &block)
  validation.plugin(:value_helpers)
end