3 cattr_accessor :manifest
4 attr :system_resources, :magic_numbers,
5 :controllers, :models, :list_groups, :profilers, :filers, :forms, :lists, :views
6 # call me before load routes.rb
7 # routes.rb needs engine_resources manifest in system_resources
8 # ex. it's adding license_groups routes
9 def initialize manifest
10 @manifest = manifest || {}
11 @system_resources = SystemResource.new(self, SystemResource.set_default(@manifest['system_resources']))
12 @magic_numbers = @manifest['magic_numbers']
16 # managers can't initialize before load application.rb
17 return unless defined? ::Pettanr
18 @controllers = Controller.manager(self, @manifest['controllers'])
19 @models = Model.manager(self, @manifest['models'])
20 @locals = @manifest['locals']
21 @list_groups = ListGroup.manager(self, @locals['list_groups'] || {})
22 @filers = Filer.manager(self, @locals['filers'])
23 @profilers = Profiler.manager(self, @locals['profilers'])
24 @forms = Form.base_manager(self, @locals['forms'])
25 @forms.merge(Form.extend_manager(self, @locals['forms']))
26 @system_resources.init
32 @controllers.each do |controller_name, controller|
33 model_name = controller.model_name
34 next if model_name.blank?
35 controller.actions.each do |action_name, conf|
36 next unless conf['type'] == 'list'
37 list_name = conf['list']['list_name']
38 list = Pettanr::Application::manifest.list_managers[model_name]
39 list.add_action action_name, list_name
52 Manifest.manifest = Manifest.new json
55 def item_name_to_model item_name
56 item_name.classify.constantize