end
@items = ManifestBase.load_type_name_args(self, @global_json, 'items', ItemFactory)
@controllers = Controller.load(self, @global_json, 'controllers')
+ self.replace_action_alias
@models = Model.load(self, @global_json, 'models')
end
@system_resources.init
end
+ def replace_action_alias
+ replaces = {}
+ @controllers.each do |controller_name, controller_manifest|
+ controller_manifest.actions.each do |action_name, action_manifest|
+ next unless action_manifest.alias
+ alias_action = action_manifest.alias_action
+ next unless alias_action.type == action_manifest.type
+ args = {}
+ action_manifest.a_arg_names.each do |name|
+ args[name] = action_manifest.__send__(name) || alias_action.__send__(name)
+ end
+ action_manifest.b_arg_names.each do |name|
+ args[name] = alias_action.__send__(name) || action_manifest.__send__(name)
+ end
+ args['original'] = action_manifest
+ json = {'type' => alias_action.type, 'args' => args}
+ new_action_manifest = ControllerModule::ActionFactory.factory(
+ controller_manifest, action_manifest.name, json, action_manifest.module_name
+ )
+ replaces[controller_name] ||= {}
+ replaces[controller_name][action_name] = new_action_manifest
+ end
+ end
+ replaces.each do |controller_name, controller|
+ controller.each do |action_name, action_manifest|
+ ::Manifest.manifest.controllers[controller_name].actions[action_name] = action_manifest
+ end
+ end
+ end
+
def load_models_manifest
@models.each do |model_name, model|
# skip extend model.