Sha256: 079b3704f4c7af69fc9461c9421e0b7a55431fc1741f9c33d4533f9b7068a051
Contents?: true
Size: 1.48 KB
Versions: 12
Compression:
Stored size: 1.48 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_filter 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("You do not have access to this area.") 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
12 entries across 12 versions & 1 rubygems