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

Version Path
tb_core-1.2.1 lib/spud_core/belongs_to_app.rb
tb_core-1.2.0 lib/spud_core/belongs_to_app.rb
tb_core-1.1.10 lib/spud_core/belongs_to_app.rb
tb_core-1.1.9 lib/spud_core/belongs_to_app.rb
tb_core-1.1.8 lib/spud_core/belongs_to_app.rb
tb_core-1.1.7 lib/spud_core/belongs_to_app.rb
tb_core-1.1.6 lib/spud_core/belongs_to_app.rb
tb_core-1.1.5 lib/spud_core/belongs_to_app.rb
tb_core-1.1.4 lib/spud_core/belongs_to_app.rb
tb_core-1.1.2 lib/spud_core/belongs_to_app.rb
tb_core-1.1.1 lib/spud_core/belongs_to_app.rb
tb_core-1.1.0 lib/spud_core/belongs_to_app.rb