Class: AnnouncementFinder

Inherits:
Object
  • Object
show all
Defined in:
app/models/announcement_finder.rb

Overview

Class to handle fetching Announcement rows for various use cases.

Class Method Summary collapse

Class Method Details

.for_adminActiveRecord::Relation<Announcement>

Returns all Announcements for admin edit page.

Returns:



9
10
11
12
13
# File 'app/models/announcement_finder.rb', line 9

def for_admin
  Announcement
    .all
    .sort_by(&:status_order)
end

.for_display(user) ⇒ Array<Announcement>

Returns unhidden Announcements that user may see.

Parameters:

  • user (User)

Returns:



19
20
21
22
23
24
# File 'app/models/announcement_finder.rb', line 19

def for_display(user)
  result = current
  result = remove_hidden(user, result)
  result = filter_by_role(user, result)
  result
end

.for_edit(user) ⇒ ActiveRecord::Relation<Announcement>

Returns Announcements that user may edit.

Parameters:

  • user (User)

Returns:



30
31
32
33
34
35
# File 'app/models/announcement_finder.rb', line 30

def for_edit(user)
 Announcement
    .active
    .where("(starts_at is null or starts_at < :now)", :now => DateTime.now)
    .order('created_at desc')
end