Sha256: 28f160f0e0a7f332bb7df70725a80129f9cec6dd4d7253216e15861185962873
Contents?: true
Size: 838 Bytes
Versions: 8
Compression:
Stored size: 838 Bytes
Contents
class << self CACHE_KEY = "ROLEHASH".freeze def load_rolehash ::Card.cache.fetch(CACHE_KEY) do generate_rolehash end end def generate_rolehash Auth.as_bot do Card.search(left: { type_id: Card::RoleID }, right_id: Card::MembersID) .each_with_object({}) do |member_card, hash| hash[member_card.left_id] = ::Set.new member_card.item_ids end end end def update_rolehash role_id, member_ids role_hash[role_id] = member_ids ::Card.cache.write CACHE_KEY, role_hash end def clear_rolehash @role_hash = nil end def role_hash @role_hash ||= load_rolehash end def role_ids user_id role_hash.each_with_object([]) do |(role_id, member_ids), all_role_ids| next unless member_ids.include? user_id all_role_ids << role_id end end end
Version data entries
8 entries across 8 versions & 1 rubygems