module Card::Rule
Optimized handling of card “rules” (Set+Setting) and preferences.
Public Class Methods
Source
# File lib/card/rule.rb, line 47 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
Source
# File lib/card/rule.rb, line 31 def clear_preference_cache PreferenceCache.clear end
Source
# File lib/card/rule.rb, line 35 def clear_read_rule_cache ReadRuleCache.clear end
Source
# File lib/card/rule.rb, line 5 def global_setting name Auth.as_bot do (card = Card[name]) && !card.db_content.strip.empty? && card.db_content end end
Source
# File lib/card/rule.rb, line 19 def preference_cache PreferenceCache.read end
Source
# File lib/card/rule.rb, line 39 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
Source
# File lib/card/rule.rb, line 23 def read_rule_cache ReadRuleCache.read end
Private Class Methods
Source
# File lib/card/rule.rb, line 55 def all_user_ids Card.where(type_id: UserID).pluck :id end