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