Sha256: 3957fc49816e2aa89410befdfaee8b798a108a185cc201f08f76292fe34b7176

Contents?: true

Size: 1.14 KB

Versions: 19

Compression:

Stored size: 1.14 KB

Contents

module CanTango
  class Configuration
    class Guest
      include Singleton

      def clear!
        @user = nil
        @account = nil
      end

      def user user = nil, &block
        return (@user || guest_user) if !user && !block
        @user = user || yield
      end

      alias_method :user=, :user

      def account account = nil, &block
        return (@account || guest_account) if !account && !block
        @account = account || yield
      end
      alias_method :user_account, :account
      alias_method :account=, :account

      def default_user?
        has_guest? base_user_class
      end

      def default_account?
        has_guest? base_account_class
      end

      protected

      def guest_user
        base_user_class.guest if default_user?
      end

      def guest_account
        base_account_class.guest if default_account?
      end

      def has_guest? clazz
        clazz && defined?(clazz) && clazz.respond_to?(:guest)
      end

      def base_user_class
        CanTango.config.user.base_class
      end

      def base_account_class
        CanTango.config.user_account.base_class
      end
    end
  end
end
 

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
cantango-config-0.1.9.2 lib/cantango/configuration/guest.rb
cantango-config-0.1.8.1 lib/cantango/configuration/guest.rb
cantango-config-0.1.8 lib/cantango/configuration/guest.rb
cantango-config-0.1.7 lib/cantango/configuration/guest.rb
cantango-config-0.1.6 lib/cantango/configuration/guest.rb
cantango-config-0.1.5 lib/cantango/configuration/guest.rb
cantango-config-0.1.4 lib/cantango/configuration/guest.rb
cantango-config-0.1.3 lib/cantango/configuration/guest.rb
cantango-config-0.1.2 lib/cantango/configuration/guest.rb
cantango-config-0.1.1 lib/cantango/configuration/guest.rb
cantango-config-0.1.0 lib/cantango/configuration/guest.rb
cantango-0.9.4.7 lib/cantango/configuration/guest.rb
cantango-0.9.4.6 lib/cantango/configuration/guest.rb
cantango-0.9.4.5 lib/cantango/configuration/guest.rb
cantango-0.9.4.3 lib/cantango/configuration/guest.rb
cantango-0.9.4.2 lib/cantango/configuration/guest.rb
cantango-0.9.4.1 lib/cantango/configuration/guest.rb
cantango-0.9.4 lib/cantango/configuration/guest.rb
cantango-0.9.3.2 lib/cantango/configuration/guest.rb