class PoroValidator::ErrorStore

Attributes

data[R]

Public Class Methods

new(data = {}) click to toggle source
# File lib/poro_validator/error_store.rb, line 5
def initialize(data = {})
  @data = {}
  self.load(data)
end

Public Instance Methods

get(key) click to toggle source
# File lib/poro_validator/error_store.rb, line 10
def get(key)
  validate_key!(key)
  @data[key.to_s]
end
load(data) click to toggle source
# File lib/poro_validator/error_store.rb, line 30
def load(data)
  data.each do |key, value|
    validate_key!(key)
    @data[key.to_s] = value
  end
end
reset() click to toggle source
# File lib/poro_validator/error_store.rb, line 37
def reset
  @data = {}
end
set(key, value = nil) { |: value| ... } click to toggle source
# File lib/poro_validator/error_store.rb, line 15
def set(key, value = nil, &block)
  validate_key!(key)
  if key.is_a?(::Array)
    key = key.flatten.reverse.inject do |a,n|
      { n => a }
    end
  end
  @data[key.to_s] = block_given? ? yield : value
end
set?(key) click to toggle source
# File lib/poro_validator/error_store.rb, line 25
def set?(key)
  validate_key!(key)
  @data.keys.include?(key.to_s)
end

Private Instance Methods

validate_key!(key) click to toggle source
# File lib/poro_validator/error_store.rb, line 43
def validate_key!(key)
  unless key.is_a?(::String) || key.is_a?(::Symbol) || key.is_a?(::Array) \
    || key.is_a?(::Hash)
    raise ::PoroValidator::InvalidType.new(
      "only String, Symbol, Array or Hash are allowed! invalid key: #{key.inspect}"
    )
  end
end