Class: GenericViewMapper::Registry
- Inherits:
-
Object
- Object
- GenericViewMapper::Registry
- Defined in:
- lib/generic_view_mapper/registry.rb
Constant Summary collapse
- TRACKED_CLASSES =
[ Entity, View ].freeze
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
Instance Method Summary collapse
- #[](val) ⇒ Object
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #register(*classes) ⇒ Object
- #register_all ⇒ Object
- #registered?(klass) ⇒ Boolean
- #reload ⇒ Object
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
12 13 14 |
# File 'lib/generic_view_mapper/registry.rb', line 12 def initialize @data = Hash.new { |h,k| h[k] = [] } end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
5 6 7 |
# File 'lib/generic_view_mapper/registry.rb', line 5 def data @data end |
Instance Method Details
#[](val) ⇒ Object
16 17 18 |
# File 'lib/generic_view_mapper/registry.rb', line 16 def [](val) @data[val] end |
#register(*classes) ⇒ Object
25 26 27 28 29 30 |
# 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 ⇒ Object
36 37 38 39 40 |
# 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) ⇒ Boolean
32 33 34 |
# File 'lib/generic_view_mapper/registry.rb', line 32 def registered?(klass) @data.any? { |(_,k)| k.map(&:first).include?(klass) } end |
#reload ⇒ Object
20 21 22 23 |
# File 'lib/generic_view_mapper/registry.rb', line 20 def reload data.clear register_all end |