class LIVR::Rules::Meta::VariableObject

Public Class Methods

new(selector_field, livrs) click to toggle source
# File lib/livr/rules/meta.rb, line 26
def initialize(selector_field, livrs)
  @selector_field = selector_field
  @validators = {}
  livrs.each do |selector_value, livr|
    @validators[selector_value] = Validator.new(livr).prepare
  end
end

Public Instance Methods

call(object, user_data, field_results) click to toggle source
# File lib/livr/rules/meta.rb, line 34
def call(object, user_data, field_results)
  return if is_no_value(object)
  if ( !object.is_a?(Hash) || !object[@selector_field] || !@validators[ object[@selector_field] ] )
    return 'FORMAT_ERROR'
  end

  validator = @validators.fetch(object.fetch(@selector_field))
  result = validator.validate(object)

  if result
    field_results << result
    return
  else
    return validator.get_errors
  end
end