Class: Refinery::News::Item
- Inherits:
-
Core::BaseModel
- Object
- Core::BaseModel
- Refinery::News::Item
- Extended by:
- FriendlyId
- Defined in:
- app/models/refinery/news/item.rb
Defined Under Namespace
Classes: Translation
Instance Attribute Summary collapse
-
#locale ⇒ Object
to hold temporarily.
Class Method Summary collapse
- .all_previous ⇒ Object
- .archived ⇒ Object
- .by_archive(archive_date) ⇒ Object
- .by_year(archive_year) ⇒ Object
- .latest(limit = 10) ⇒ Object
- .live ⇒ Object
- .next(item) ⇒ Object
- .not_expired ⇒ Object
- .previous(item) ⇒ Object
- .published ⇒ Object
- .teaser_enabled_toggle! ⇒ Object
- .teasers_enabled? ⇒ Boolean
-
.translated ⇒ Object
rejects any page that has not been translated to the current locale.
Instance Method Summary collapse
- #next ⇒ Object
-
#not_published? ⇒ Boolean
has the published date not yet arrived?.
- #prev ⇒ Object
Instance Attribute Details
#locale ⇒ Object
to hold temporarily
10 11 12 |
# File 'app/models/refinery/news/item.rb', line 10 def locale @locale end |
Class Method Details
.all_previous ⇒ Object
46 47 48 |
# File 'app/models/refinery/news/item.rb', line 46 def all_previous where(['publish_date <= ?', Time.now.beginning_of_month]) end |
.archived ⇒ Object
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 |
.live ⇒ Object
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_expired ⇒ Object
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 |
.published ⇒ Object
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 currently = Refinery::Setting.find_or_set(:teasers_enabled, true, :scoping => 'news') Refinery::Setting.set(:teasers_enabled, :value => !currently, :scoping => 'news') end |
.teasers_enabled? ⇒ Boolean
89 90 91 |
# File 'app/models/refinery/news/item.rb', line 89 def Refinery::Setting.find_or_set(:teasers_enabled, true, :scoping => 'news') end |
.translated ⇒ Object
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
#next ⇒ Object
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?
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 |
#prev ⇒ Object
33 34 35 |
# File 'app/models/refinery/news/item.rb', line 33 def prev self.class.previous(self).first end |