Class: Pageflow::Entry
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Pageflow::Entry
- Extended by:
- FriendlyId
- Defined in:
- app/models/pageflow/entry.rb
Instance Method Summary collapse
- #edit_lock ⇒ Object
- #publish(options = {}) ⇒ Object
- #published? ⇒ Boolean
- #published_until ⇒ Object
- #restore(options) ⇒ Object
- #should_generate_new_friendly_id? ⇒ Boolean
- #slug_candidates ⇒ Object
- #snapshot(options) ⇒ Object
Instance Method Details
#edit_lock ⇒ Object
37 38 39 |
# File 'app/models/pageflow/entry.rb', line 37 def edit_lock super || EditLock::Null.new(self) end |
#publish(options = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'app/models/pageflow/entry.rb', line 41 def publish( = {}) revisions.depublish_all draft.copy do |revision| revision.creator = [:creator] revision.frozen_at = Time.now revision.published_at = Time.now revision.published_until = [:published_until] end end |
#published? ⇒ Boolean
72 73 74 |
# File 'app/models/pageflow/entry.rb', line 72 def published? published_revision.present? end |
#published_until ⇒ Object
76 77 78 |
# File 'app/models/pageflow/entry.rb', line 76 def published_until published? ? published_revision.published_until : nil end |
#restore(options) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'app/models/pageflow/entry.rb', line 60 def restore() restored_revision = .fetch(:revision) draft.update!(:frozen_at => Time.now, :creator => [:creator], :snapshot_type => 'before_restore') restored_revision.copy do |revision| revision.restored_from = restored_revision revision.frozen_at = nil revision.published_at = nil revision.published_until = nil end end |
#should_generate_new_friendly_id? ⇒ Boolean
80 81 82 |
# File 'app/models/pageflow/entry.rb', line 80 def should_generate_new_friendly_id? slug.blank? || title_changed? end |
#slug_candidates ⇒ Object
84 85 86 |
# File 'app/models/pageflow/entry.rb', line 84 def slug_candidates [:title, [:title, :id]] end |
#snapshot(options) ⇒ Object
52 53 54 55 56 57 58 |
# File 'app/models/pageflow/entry.rb', line 52 def snapshot() draft.copy do |revision| revision.creator = [:creator] revision.frozen_at = Time.now revision.snapshot_type = .fetch(:type, 'auto') end end |