class ActiveValidation::Registry
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/active_validation/registry.rb, line 9 def initialize(name) @name = name @items = Concurrent::Map.new end
Public Instance Methods
clear()
click to toggle source
# File lib/active_validation/registry.rb, line 14 def clear @items.clear end
delete(name)
click to toggle source
# File lib/active_validation/registry.rb, line 38 def delete(name) @items.delete(normalize_name(name)) end
each(&block)
click to toggle source
# File lib/active_validation/registry.rb, line 18 def each(&block) @items.values.uniq.each(&block) end
find(item_name)
click to toggle source
# File lib/active_validation/registry.rb, line 22 def find(item_name) @items.fetch(normalize_name(item_name)) rescue KeyError => e raise key_error_with_custom_message(e, item_name) end
Also aliased as: []
register(name, item)
click to toggle source
# File lib/active_validation/registry.rb, line 30 def register(name, item) @items[normalize_name(name)] = item end
registered?(name)
click to toggle source
# File lib/active_validation/registry.rb, line 34 def registered?(name) @items.key?(normalize_name(name)) end
Private Instance Methods
key_error_with_custom_message(key_error, item_name)
click to toggle source
# File lib/active_validation/registry.rb, line 44 def key_error_with_custom_message(key_error, item_name) message = key_error.message.sub("key not found", %(#{@name} not registered: "#{item_name}")) error = KeyError.new(message) error.set_backtrace(key_error.backtrace) error end
normalize_name(key)
click to toggle source
# File lib/active_validation/registry.rb, line 51 def normalize_name(key) key.respond_to?(:to_sym) ? key.to_sym : key.to_s.to_sym end