Sha256: ebc1314eeb631390308a95e5f93cf0fed0d16143286dfdbfcd0f371a9db6bd6b
Contents?: true
Size: 1.5 KB
Versions: 8
Compression:
Stored size: 1.5 KB
Contents
module Spud::BelongsToApp extend ActiveSupport::Concern included do extend ClassMethods end module ClassMethods def belongs_to_spud_app(name=nil,options={}) @page_title = options[:page_title] Spud::Core.admin_applications.each do |app| if app[:name].parameterize.underscore.to_sym == name @page_application = app break end end self.class_eval do before_action do |controller| @page_thumbnail = self.class.page_application[:thumbnail] @application_name = self.class.page_application[:name] @page_name = self.class.page_title if !current_user.can_view_app?(self.class.page_application) raise Spud::AccessDeniedError.new(:item => 'module', :template => '/layouts/admin/error_page') end if controller.action_name == 'new' || controller.action_name == 'create' @page_name = "New #{@page_name.singularize}" elsif controller.action_name == 'edit' || controller.action_name == 'update' @page_name = "Edit #{@page_name.singularize}" elsif controller.action_name == 'show' @page_name = "Show #{@page_name.singularize}" end end end end def page_application @page_application || self.superclass.instance_variable_get('@page_application') end def page_title @page_title || self.superclass.instance_variable_get('@page_title') || page_application[:name] end end end
Version data entries
8 entries across 8 versions & 1 rubygems