Class: Avo::ViewTypes::ViewTypeManager

Inherits:
Object
  • Object
show all
Defined in:
lib/avo/view_types/view_type_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeViewTypeManager

Returns a new instance of ViewTypeManager.



6
7
8
# File 'lib/avo/view_types/view_type_manager.rb', line 6

def initialize
  @registry = {}
end

Instance Attribute Details

#registryObject (readonly)

Returns the value of attribute registry.



4
5
6
# File 'lib/avo/view_types/view_type_manager.rb', line 4

def registry
  @registry
end

Instance Method Details

#component_for(name) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/avo/view_types/view_type_manager.rb', line 23

def component_for(name)
  entry = find(name)

  raise Avo::ViewTypeComponentNotFoundError, "No component registered for view type '#{name}'" unless entry

  component = entry[:component]
  component.is_a?(String) ? component.constantize : component
end

#find(name) ⇒ Object



19
20
21
# File 'lib/avo/view_types/view_type_manager.rb', line 19

def find(name)
  @registry[name.to_sym]
end

#register(name, component:, icon:, active_icon:, translation_key: nil) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/avo/view_types/view_type_manager.rb', line 10

def register(name, component:, icon:, active_icon:, translation_key: nil)
  @registry[name.to_sym] = {
    component: component,
    icon: icon,
    active_icon: active_icon,
    translation_key: translation_key
  }
end

#registered?(name) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/avo/view_types/view_type_manager.rb', line 32

def registered?(name)
  @registry.key?(name.to_sym)
end

#resetObject



36
37
38
39
# File 'lib/avo/view_types/view_type_manager.rb', line 36

def reset
  @registry = {}
  register_defaults
end