Sha256: 564c111b3fa0f9870950d3ea9475a70c0ed647d657f9d06fbef0ef1c66a5dafc
Contents?: true
Size: 857 Bytes
Versions: 47
Compression:
Stored size: 857 Bytes
Contents
module Xeroizer module Record class Validator attr_reader :attribute attr_reader :options def initialize(attribute, options = {}) @attribute = attribute @options = options end def validate(record) valid?(record) if run_validator?(record, options) end def run_validator?(record, options) return false if options[:if] && !condition?(record, options[:if]) return false if options[:unless] && condition?(record, options[:unless]) true end def condition?(record, condition) return condition.call(record) if condition.respond_to? :call return record.send(condition) if condition.is_a? Symbol raise "Validation condition must be a Symbol or an Object that responds to call" end end end end
Version data entries
47 entries across 47 versions & 3 rubygems