module TinyValidations

Constants

VERSION

Public Instance Methods

context=(key) click to toggle source
# File lib/tiny_validations.rb, line 32
def context=(key)
  if self.respond_to?(context_key(key))
    self.validation_context = key
  else
    raise 'Context not found'
  end
end
validations_base(rule, condition = :if) { |validations| ... } click to toggle source
# File lib/tiny_validations.rb, line 16
def validations_base(rule, condition = :if, &block)
  if rule.is_a?(Array)
    keys = rule.map { |r| context_key(r) }
  else
    keys = Array(context_key(rule))
  end

  options = {}
  options[condition] = -> { keys.include?(context_key(validation_context)) }

  instance_eval do
    keys.each { |k| attr_accessor k }
    with_options(options) { |validations| yield validations }
  end
end
validations_when(key , &block) click to toggle source
# File lib/tiny_validations.rb, line 8
def validations_when(key , &block)
  validations_base(key, &block)
end
validations_when_not(key, &block) click to toggle source
# File lib/tiny_validations.rb, line 12
def validations_when_not(key, &block)
  validations_base(key, :unless, &block)
end

Private Instance Methods

context_key(key) click to toggle source
# File lib/tiny_validations.rb, line 41
def context_key(key)
  "context_validations_#{key}".to_sym
end