module Ez::Resources::Manager
Public Class Methods
included(base)
click to toggle source
# File lib/ez/resources/manager.rb, line 11 def self.included(base) base.extend(DSL) base.rescue_from UnavailableError do if Ez::Resources.config.ui_failed_hook instance_exec(&Ez::Resources.config.ui_failed_hook) else flash[:alert] = t('messages.unavailable', scope: Ez::Resources.config.i18n_scope) redirect_to '/' end end end
Public Instance Methods
create()
click to toggle source
# File lib/ez/resources/manager.rb, line 46 def create Manager::Hooks.can!(:can_create?, ez_resource_config) @ez_resource = ez_resource_config.model.new(ez_resource_params) if @ez_resource.save flash[:notice] = t('messages.created', resource_name: ez_resource_config.resource_name, scope: Ez::Resources.config.i18n_scope) redirect_to ez_resource_config.path_for(action: :index) else flash[:alert] = t('messages.invalid', resource_name: ez_resource_config.resource_name, scope: Ez::Resources.config.i18n_scope) ez_resource_view :form, ez_resource_config end end
destroy()
click to toggle source
# File lib/ez/resources/manager.rb, line 92 def destroy Manager::Hooks.can?(:can_destroy?, ez_resource_config, ez_resource_config.data) ez_resource_config.data.delete flash[:notice] = t('messages.removed', resource_name: ez_resource_config.resource_name, scope: Ez::Resources.config.i18n_scope) redirect_to ez_resource_config.path_for(action: :index) end
edit()
click to toggle source
# File lib/ez/resources/manager.rb, line 66 def edit Manager::Hooks.can!(:can_update?, ez_resource_config, ez_resource_config.data) ez_resource_view :form, ez_resource_config end
index()
click to toggle source
# File lib/ez/resources/manager.rb, line 24 def index Manager::Hooks.can!(:can_list?, ez_resource_config) ez_resource_view :collection, ez_resource_config end
new()
click to toggle source
# File lib/ez/resources/manager.rb, line 40 def new Manager::Hooks.can!(:can_create?, ez_resource_config) ez_resource_view :form, ez_resource_config end
show()
click to toggle source
# File lib/ez/resources/manager.rb, line 30 def show Manager::Hooks.can!(:can_read?, ez_resource_config) if ez_resource_config.show_action_renders_form? ez_resource_view :form, ez_resource_config else # TODO: render show cell end end
update()
click to toggle source
# File lib/ez/resources/manager.rb, line 72 def update Manager::Hooks.can!(:can_update?, ez_resource_config, ez_resource_config.data) @ez_resource = ez_resource_config.data if @ez_resource.update(ez_resource_params) flash[:notice] = t('messages.updated', resource_name: ez_resource_config.resource_name, scope: Ez::Resources.config.i18n_scope) redirect_to ez_resource_config.path_for(action: :index) else flash[:alert] = t('messages.invalid', resource_name: ez_resource_config.resource_name, scope: Ez::Resources.config.i18n_scope) ez_resource_view :form, ez_resource_config end end
Private Instance Methods
ez_resource_config()
click to toggle source
# File lib/ez/resources/manager.rb, line 113 def ez_resource_config Config.new( controller: self, dsl_config: self.class.ez_resource_config_store, data: @ez_resource ) end
ez_resource_params()
click to toggle source
# File lib/ez/resources/manager.rb, line 109 def ez_resource_params params.require(:ez_resource).permit(ez_resource_config.form_fields.map(&:name)) end
ez_resource_view(cell_name, *args)
click to toggle source
# File lib/ez/resources/manager.rb, line 105 def ez_resource_view(cell_name, *args) render html: cell("ez/resources/#{cell_name}", *args), layout: true end