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
35 36 37 |
# File 'app/models/pageflow/entry.rb', line 35 def edit_lock super || EditLock::Null.new(self) end |
#publish(options = {}) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'app/models/pageflow/entry.rb', line 39 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
70 71 72 |
# File 'app/models/pageflow/entry.rb', line 70 def published? published_revision.present? end |
#published_until ⇒ Object
74 75 76 |
# File 'app/models/pageflow/entry.rb', line 74 def published_until published? ? published_revision.published_until : nil end |
#restore(options) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/models/pageflow/entry.rb', line 58 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
78 79 80 |
# File 'app/models/pageflow/entry.rb', line 78 def should_generate_new_friendly_id? slug.blank? || title_changed? end |
#slug_candidates ⇒ Object
82 83 84 |
# File 'app/models/pageflow/entry.rb', line 82 def slug_candidates [:title, [:title, :id]] end |
#snapshot(options) ⇒ Object
50 51 52 53 54 55 56 |
# File 'app/models/pageflow/entry.rb', line 50 def snapshot() draft.copy do |revision| revision.creator = [:creator] revision.frozen_at = Time.now revision.snapshot_type = .fetch(:type, 'auto') end end |