Class: Refinery::News::Item

Inherits:
Core::BaseModel
  • Object
show all
Extended by:
FriendlyId
Defined in:
app/models/refinery/news/item.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.all_previousObject



42
43
44
# File 'app/models/refinery/news/item.rb', line 42

def all_previous
  where(['publish_date <= ?', Time.now.beginning_of_month])
end

.archivedObject



72
73
74
# File 'app/models/refinery/news/item.rb', line 72

def archived
  where("publish_date <= ?", Time.now)
end

.by_archive(archive_date) ⇒ Object



34
35
36
# File 'app/models/refinery/news/item.rb', line 34

def by_archive(archive_date)
  where(:publish_date => archive_date.beginning_of_month..archive_date.end_of_month)
end

.by_year(archive_year) ⇒ Object



38
39
40
# File 'app/models/refinery/news/item.rb', line 38

def by_year(archive_year)
  where(:publish_date => archive_year.beginning_of_year..archive_year.end_of_year)
end

.latest(limit = 10) ⇒ Object



64
65
66
# File 'app/models/refinery/news/item.rb', line 64

def latest(limit = 10)
  published.limit(limit)
end

.liveObject



68
69
70
# File 'app/models/refinery/news/item.rb', line 68

def live
  not_expired.where("publish_date <= ?", Time.now)
end

.next(item) ⇒ Object



46
47
48
49
50
# File 'app/models/refinery/news/item.rb', line 46

def next(item)
  self.send(:with_exclusive_scope) do
    where("publish_date > ?", item.publish_date).order("publish_date ASC")
  end
end

.not_expiredObject



56
57
58
# File 'app/models/refinery/news/item.rb', line 56

def not_expired
  where(arel_table[:expiration_date].eq(nil).or(arel_table[:expiration_date].gt(Time.now)))
end

.previous(item) ⇒ Object



52
53
54
# File 'app/models/refinery/news/item.rb', line 52

def previous(item)
  where("publish_date < ?", item.publish_date)
end

.publishedObject



60
61
62
# File 'app/models/refinery/news/item.rb', line 60

def published
  not_expired.where("publish_date < ?", Time.now)
end

.teaser_enabled_toggle!Object



89
90
91
92
# File 'app/models/refinery/news/item.rb', line 89

def teaser_enabled_toggle!
  currently = Refinery::Setting.find_or_set(:teasers_enabled, true, :scoping => 'news')
  Refinery::Setting.set(:teasers_enabled, :value => !currently, :scoping => 'news')
end

.teasers_enabled?Boolean

Returns:

  • (Boolean)


85
86
87
# File 'app/models/refinery/news/item.rb', line 85

def teasers_enabled?
  Refinery::Setting.find_or_set(:teasers_enabled, true, :scoping => 'news')
end

.translatedObject

rejects any page that has not been translated to the current locale.



77
78
79
80
81
82
83
# File 'app/models/refinery/news/item.rb', line 77

def translated
  includes(:translations).where(
    translation_class.arel_table[:locale].eq(::Globalize.locale)
  ).where(
    arel_table[:id].eq(translation_class.arel_table[:refinery_news_item_id])
  )
end

Instance Method Details

#nextObject



25
26
27
# File 'app/models/refinery/news/item.rb', line 25

def next
  self.class.next(self).first
end

#not_published?Boolean

has the published date not yet arrived?

Returns:

  • (Boolean)


21
22
23
# File 'app/models/refinery/news/item.rb', line 21

def not_published? # has the published date not yet arrived?
  publish_date > Time.now
end

#prevObject



29
30
31
# File 'app/models/refinery/news/item.rb', line 29

def prev
  self.class.previous(self).first
end