module Validation::Validatable

A way of defining accessor with flexible validations. @example define accessor with validations

class Person
  include Validation
  attr_accessor_with_validation :name, AND(String, /\A\w+(?: \w+)*\z/), &:strip
  attr_accessor_with_validation :birthday, Time
end

Private Instance Methods

_valid?(pattern, value) click to toggle source

@param [Proc, Method, ===] pattern @param [Object] value

# File lib/validation/validatable.rb, line 19
def _valid?(pattern, value)
  !!(
    case pattern
    when Proc
      instance_exec(value, &pattern)
    when Method
      pattern.call(value)
    else
      pattern === value
    end
  )
end