module Toolchain::Validations::ClassMethods
Public Instance Methods
custom_validations()
click to toggle source
@return [Array] all the custom validation operations to run.
# File lib/toolchain/validations.rb, line 20 def custom_validations @custom_validations ||= [] end
include_validations(validations)
click to toggle source
Takes a Proc that contains validation logic and applies that to this class.
@param validations [Proc]
# File lib/toolchain/validations.rb, line 69 def include_validations(validations) class_eval(&validations) end
validate(method)
click to toggle source
Adds the provided method name to the validations array. This method will be called during validation time and allows you to do program-specific validations.
@param method [Symbol, String]
# File lib/toolchain/validations.rb, line 60 def validate(method) custom_validations.push(method.to_sym) end
validates(*args)
click to toggle source
Adds the provided validator to the validations array for the provided attribute key_path.
@param args [Array<Symbol, Hash>]
@example
class Device validates :name, presence: true validates :config, :url, presence: true end
# File lib/toolchain/validations.rb, line 35 def validates(*args) options, key_path = args.pop, args _if = options.delete(:if) _unless = options.delete(:unless) options.each do |key, data| if validator = Helpers.find_validator(key) validations.push( key_path: key_path, validator: validator, data: data, if: _if, unless: _unless ) end end end
validations()
click to toggle source
@return [Array] all the standard validation operations to run.
# File lib/toolchain/validations.rb, line 14 def validations @validations ||= [] end