Class: GenericViewMapper::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/generic_view_mapper/registry.rb

Constant Summary collapse

TRACKED_CLASSES =
[
  Entity,
  View
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRegistry

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

#dataObject (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_allObject



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

Returns:

  • (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

#reloadObject



20
21
22
23
# File 'lib/generic_view_mapper/registry.rb', line 20

def reload
  data.clear
  register_all
end