Sha256: cf4abacfda1503083d372642071c29743abd0abcd796485752e2e438cabcd7ec

Contents?: true

Size: 1.38 KB

Versions: 29

Compression:

Stored size: 1.38 KB

Contents

class Card
  # Optimized handling of card "rules" (Set+Setting) and preferences.
  module Rule
    class << self
      def global_setting name
        Auth.as_bot do
          (card = Card[name]) && !card.db_content.strip.empty? && card.db_content
        end
      end

      def toggle val
        val.to_s.strip == "1"
      end

      def rule_cache
        Cache.read
      end

      def preference_cache
        PreferenceCache.read
      end

      def read_rule_cache
        ReadRuleCache.read
      end

      def clear_rule_cache
        Cache.clear
      end

      def clear_preference_cache
        PreferenceCache.clear
      end

      def clear_read_rule_cache
        ReadRuleCache.clear
      end

      def preference_names user_name, setting_code
        Card.search({ right: { codename: setting_code },
                      left: { left: { type_id: SetID },
                              right: user_name },
                      return: :name },
                    "preference cards for user: #{user_name}")
      end

      def all_user_ids_with_rule_for set_card, setting_code
        cache_key = "#{set_card.rule_cache_key_base}+#{setting_code}"
        user_ids = PreferenceCache.user_ids[cache_key] || []
        user_ids.include?(AllID) ? all_user_ids : user_ids
      end

      private

      def all_user_ids
        Card.where(type_id: UserID).pluck :id
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
card-1.108.1 lib/card/rule.rb
card-1.108.0 lib/card/rule.rb
card-1.107.0 lib/card/rule.rb
card-1.106.0 lib/card/rule.rb
card-1.105.6 lib/card/rule.rb
card-1.105.5 lib/card/rule.rb
card-1.105.4 lib/card/rule.rb
card-1.105.3 lib/card/rule.rb
card-1.105.2.pre1 lib/card/rule.rb
card-1.105.2 lib/card/rule.rb
card-1.105.1 lib/card/rule.rb
card-1.105.0 lib/card/rule.rb
card-1.104.2 lib/card/rule.rb
card-1.104.1 lib/card/rule.rb
card-1.104.0 lib/card/rule.rb
card-1.103.4 lib/card/rule.rb
card-1.103.3 lib/card/rule.rb
card-1.103.2 lib/card/rule.rb
card-1.103.1 lib/card/rule.rb
card-1.103.0 lib/card/rule.rb