module Card::Rule::All

rule-related Card instance methods

Public Instance Methods

preference(setting_code, user=nil) click to toggle source
# File lib/card/rule/all.rb, line 17
def preference setting_code, user=nil
  preference_card(setting_code, user, skip_modules: true)&.db_content
end
preference?() click to toggle source
# File lib/card/rule/all.rb, line 42
def preference?
  name.parts.length > 2 &&
    (Card.fetch_type_id(name.right) == SettingID) &&
    (Card.fetch_type_id(name[0..-3]) == SetID) &&
    valid_preferer?
end
preference_card(setting_code, user=nil, options={}) click to toggle source
# File lib/card/rule/all.rb, line 21
def preference_card setting_code, user=nil, options={}
  Card.fetch preference_card_id(setting_code, user), options
end
preference_card_id(setting_code, user=nil) click to toggle source
# File lib/card/rule/all.rb, line 25
def preference_card_id setting_code, user=nil
  return unless (user_id = preference_user_id user)

  rule_id_lookup Card::Rule.preference_cache,
                 "#{setting_code}+#{user_id}",
                 "#{setting_code}+#{AllID}"
end
rule(setting_code) click to toggle source
# File lib/card/rule/all.rb, line 5
def rule setting_code
  rule_card(setting_code, skip_modules: true)&.db_content
end
rule?() click to toggle source
# File lib/card/rule/all.rb, line 33
def rule?
  standard_rule? || preference?
end
rule_card(setting_code, options={}) click to toggle source
# File lib/card/rule/all.rb, line 9
def rule_card setting_code, options={}
  Card.fetch rule_card_id(setting_code), options
end
rule_card_id(setting_code) click to toggle source
# File lib/card/rule/all.rb, line 13
def rule_card_id setting_code
  rule_id_lookup Card::Rule.rule_cache, setting_code
end
standard_rule?() click to toggle source
# File lib/card/rule/all.rb, line 37
def standard_rule?
  (Card.fetch_type_id(name.right) == SettingID) &&
    (Card.fetch_type_id(name.left) == SetID)
end

Private Instance Methods

preference_user_id(user) click to toggle source
# File lib/card/rule/all.rb, line 56
def preference_user_id user
  case user
  when Integer then user
  when Card    then user.id
  when nil     then Auth.current_id
  else
    raise Card::ServerError, "invalid preference user"
  end
end
rule_id_lookup(lookup_hash, cache_suffix, fallback_suffix=nil) click to toggle source
# File lib/card/rule/all.rb, line 66
def rule_id_lookup lookup_hash, cache_suffix, fallback_suffix=nil
  rule_lookup_keys.each do |lookup_key|
    rule_id = lookup_hash["#{lookup_key}+#{cache_suffix}"]
    rule_id ||= fallback_suffix && lookup_hash["#{lookup_key}+#{fallback_suffix}"]
    return rule_id if rule_id
  end
  nil
end
valid_preferer?() click to toggle source
# File lib/card/rule/all.rb, line 51
def valid_preferer?
  preferer = self[-2, skip_modules: true]
  (preferer.type_id == UserID) || (preferer.codename == :all)
end