Sha256: 7183159cfee8663770872acb89d2a195b1df201a6272af59931a5b208c5f3e0f

Contents?: true

Size: 1.13 KB

Versions: 17

Compression:

Stored size: 1.13 KB

Contents

Cutter::Stamper.scope :call_on_ability => "Call on Ability" do |stan|
  stan.msg :caching_done      => "Caching finished"
end

module CanTango
  module Api
    module User
      module Ability
        def user_ability user, options = {}
          stamper(:call_on_ability) { 
            @current_ability ||= ::CanTango::Ability.new(user, ability_options.merge(options)) 
          }
          @current_ability
        end

        def current_ability user_type = :user
          user_ability get_ability_user(user_type)

        end

        protected

        def get_ability_user user_type
          user_meth = :"current_#{user_type}"
          return AbilityUser.guest if !respond_to?(user_meth)

          user = send user_meth
          user ? user : AbilityUser.guest
        end

        module AbilityUser
          def self.guest
            user = CanTango::Configuration.guest.user

            raise "You must set the guest_user to a Proc or lambda in CanTango::Configuration" if !user
            procedure.respond_to?(:call) ? user.call : user
          end
        end

        include CanTango::Api::Options
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
cantango-0.9.4.1 spec/integration/performance/helpers/ability_api.rb
cantango-0.9.4 spec/integration/performance/helpers/ability_api.rb
cantango-0.9.3.2 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.9.5 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.9.4 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.9.3 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.9.2 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.9.1 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.9 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.8.1 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.8 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.7 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.6.2 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.6.1 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.6 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.5.1 spec/integration/performance/helpers/ability_api.rb
cantango-0.8.0 spec/integration/performance/helpers/ability_api.rb