Module: QueueClassicAdmin::JobCommon::ClassMethods
- Defined in:
- app/models/queue_classic_admin/job_common.rb
Constant Summary collapse
- KNOWN_COLUMN =
["id", "q_name", "method", "args", "locked_at", "created_at", "not_before", "locked_by", 'scheduled_at'].freeze
- SEARCHABLE_COLUMNS =
[ :method, :args ].freeze
Instance Method Summary collapse
- #args_is_json? ⇒ Boolean
- #extra_columns ⇒ Object
- #queue_counts ⇒ Object
- #search(query) ⇒ Object
- #searchable_columns ⇒ Object
Instance Method Details
#args_is_json? ⇒ Boolean
32 33 34 |
# File 'app/models/queue_classic_admin/job_common.rb', line 32 def args_is_json? self.column_types["args"].type == :json end |
#extra_columns ⇒ Object
13 14 15 |
# File 'app/models/queue_classic_admin/job_common.rb', line 13 def extra_columns columns.map(&:name) - KNOWN_COLUMN end |
#queue_counts ⇒ Object
9 10 11 |
# File 'app/models/queue_classic_admin/job_common.rb', line 9 def queue_counts group(:q_name).count end |
#search(query) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'app/models/queue_classic_admin/job_common.rb', line 21 def search(query) sql = searchable_columns.map do |field| unless field == :args && args_is_json? "#{field} LIKE :query" end end.reject(&:nil?).join(" OR ") wildcard_query = ["%", query, "%"].join relation.where(sql, query: wildcard_query) end |
#searchable_columns ⇒ Object
17 18 19 |
# File 'app/models/queue_classic_admin/job_common.rb', line 17 def searchable_columns @searchable_columns ||= SEARCHABLE_COLUMNS.dup end |