Class: DirectoryColumn

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/directory_column.rb

Constant Summary collapse

@@plugin_directory_columns =
[]

Class Method Summary collapse

Class Method Details

.active_column_namesObject



21
22
23
24
25
26
27
# File 'app/models/directory_column.rb', line 21

def self.active_column_names
  DirectoryColumn
    .where(type: %i[automatic plugin])
    .where(enabled: true)
    .pluck(:name)
    .map(&:to_sym)
end

.automatic_column_namesObject



9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/directory_column.rb', line 9

def self.automatic_column_names
  @automatic_column_names ||= %i[
    likes_received
    likes_given
    topics_entered
    topic_count
    post_count
    posts_read
    days_visited
  ]
end

.clear_plugin_directory_columnsObject



37
38
39
# File 'app/models/directory_column.rb', line 37

def self.clear_plugin_directory_columns
  @@plugin_directory_columns = []
end

.find_or_create_plugin_directory_column(attrs) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'app/models/directory_column.rb', line 41

def self.find_or_create_plugin_directory_column(attrs)
  directory_column =
    find_or_create_by(
      name: attrs[:column_name],
      icon: attrs[:icon],
      type: DirectoryColumn.types[:plugin],
    ) do |column|
      column.position = DirectoryColumn.maximum("position") + 1
      column.enabled = false
    end

  if @@plugin_directory_columns.exclude?(directory_column.name)
    @@plugin_directory_columns << directory_column.name
    DirectoryItem.add_plugin_query(attrs[:query])
  end
end

.plugin_directory_columnsObject



31
32
33
# File 'app/models/directory_column.rb', line 31

def self.plugin_directory_columns
  @@plugin_directory_columns
end