class GenericViewMapper::Registry
Constants
- TRACKED_CLASSES
Attributes
data[R]
Public Class Methods
new()
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 12 def initialize @data = Hash.new { |h,k| h[k] = [] } end
Public Instance Methods
[](val)
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 16 def [](val) @data[val] end
register(*classes)
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 25 def register(*classes) classes.each do |klass| name = class_name_for(klass) @data[name] << [klass, ancestors_count_for(klass)] end end
register_all()
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 36 def register_all TRACKED_CLASSES.each do |klass| klass.descendants.each { |k| register(k) } end end
registered?(klass)
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 32 def registered?(klass) @data.any? { |(_,k)| k.map(&:first).include?(klass) } end
reload()
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 20 def reload data.clear register_all end
Private Instance Methods
ancestors_count_for(klass)
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 56 def ancestors_count_for(klass) klass .ancestors .reverse .drop_while { |x| !TRACKED_CLASSES.include?(x) } .count end
class_name_for(klass)
click to toggle source
# File lib/generic_view_mapper/registry.rb, line 44 def class_name_for(klass) klass .ancestors .find { |x| TRACKED_CLASSES.include?(x) } .name .underscore .split('/') .last .pluralize .to_sym end