Class: UserLookup

Inherits:
Object
  • Object
show all
Defined in:
lib/user_lookup.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user_ids = []) ⇒ UserLookup

Returns a new instance of UserLookup.



22
23
24
# File 'lib/user_lookup.rb', line 22

def initialize(user_ids = [])
  @user_ids = user_ids.tap(&:compact!).tap(&:uniq!).tap(&:flatten!)
end

Class Method Details

.group_lookup_columnsObject



18
19
20
# File 'lib/user_lookup.rb', line 18

def self.group_lookup_columns
  @group_lookup_columns ||= %i[id name flair_icon flair_upload_id flair_bg_color flair_color]
end

.lookup_columnsObject



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/user_lookup.rb', line 4

def self.lookup_columns
  @user_lookup_columns ||= %i[
    id
    username
    name
    uploaded_avatar_id
    primary_group_id
    flair_group_id
    admin
    moderator
    trust_level
  ]
end

Instance Method Details

#[](user_id) ⇒ Object

Lookup a user by id



27
28
29
# File 'lib/user_lookup.rb', line 27

def [](user_id)
  users[user_id]
end

#flair_groupsObject



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/user_lookup.rb', line 44

def flair_groups
  @flair_groups ||=
    users
      .values
      .each_with_object({}) do |user, hash|
        if user.flair_group_id
          group = groups[user.flair_group_id]
          set_user_group_preload(user, group, :flair_group)
          hash[user.id] = group
        end
      end
end

#primary_groupsObject



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/user_lookup.rb', line 31

def primary_groups
  @primary_groups ||=
    users
      .values
      .each_with_object({}) do |user, hash|
        if user.primary_group_id
          group = groups[user.primary_group_id]
          set_user_group_preload(user, group, :primary_group)
          hash[user.id] = group
        end
      end
end