Class: RubyUIAdmin::ResourceManager

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_ui_admin/resource_manager.rb

Overview

Discovers and indexes the host app's resources (defined under RubyUIAdmin::Resources in app/ruby_ui_admin/resources).

Instance Method Summary collapse

Instance Method Details

#bootObject



9
10
11
12
# File 'lib/ruby_ui_admin/resource_manager.rb', line 9

def boot
  @resources = nil
  self
end

#find_by_route_key(key) ⇒ Object

Find a resource class by its route key, e.g. "buyers".



24
25
26
27
28
# File 'lib/ruby_ui_admin/resource_manager.rb', line 24

def find_by_route_key(key)
  key = key.to_s
  resources.find { |resource| resource.route_key == key } ||
    resources.find { |resource| resource.resource_name == key.singularize }
end

#find_for_model(model_class) ⇒ Object

Find the resource class for a given model class.



31
32
33
34
35
36
# File 'lib/ruby_ui_admin/resource_manager.rb', line 31

def find_for_model(model_class)
  mapped = RubyUIAdmin.configuration.model_resource_mapping[model_class.to_s]
  return mapped.to_s.constantize if mapped

  resources.find { |resource| resource.model_class == model_class }
end

All resources visible in the sidebar navigation.



19
20
21
# File 'lib/ruby_ui_admin/resource_manager.rb', line 19

def navigation_resources
  resources.select { |resource| resource.visible_on_sidebar }
end

#resourcesObject



14
15
16
# File 'lib/ruby_ui_admin/resource_manager.rb', line 14

def resources
  @resources ||= fetch_resources
end