Class: Refinery::News::Item

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

Defined Under Namespace

Classes: Translation

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#localeObject

to hold temporarily



10
11
12
# File 'app/models/refinery/news/item.rb', line 10

def locale
  @locale
end

Class Method Details

.all_previousObject



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

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

.archivedObject



76
77
78
# File 'app/models/refinery/news/item.rb', line 76

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

.by_archive(archive_date) ⇒ Object



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

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

.by_year(archive_year) ⇒ Object



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

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

.latest(limit = 10) ⇒ Object



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

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

.liveObject



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

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

.next(item) ⇒ Object



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

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

.not_expiredObject



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

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

.previous(item) ⇒ Object



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

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

.publishedObject



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

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

.teaser_enabled_toggle!Object



93
94
95
96
# File 'app/models/refinery/news/item.rb', line 93

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)


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

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.



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

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



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

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

#not_published?Boolean

has the published date not yet arrived?

Returns:

  • (Boolean)


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

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

#prevObject



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

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