Module: Spina::Pro::PageRevisions::PageDecorator
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/spina/pro/page_revisions/page_decorator.rb
Instance Method Summary collapse
- #copy_content_to_revision(revision) ⇒ Object
- #create_draft!(updated_by: nil) ⇒ Object
- #load_revision(revision) ⇒ Object
- #save_revision!(revision = nil, updated_by: nil, draft: true) ⇒ Object
Instance Method Details
#copy_content_to_revision(revision) ⇒ Object
33 34 35 36 37 |
# File 'lib/spina/pro/page_revisions/page_decorator.rb', line 33 def copy_content_to_revision(revision) Spina.locales.each do |locale| revision.send("#{locale}_content=", send("#{locale}_content")) end end |
#create_draft!(updated_by: nil) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/spina/pro/page_revisions/page_decorator.rb', line 26 def create_draft!(updated_by: nil) revision = page_revisions.create copy_content_to_revision(revision) revision.update(updated_by: updated_by, draft: true) revision end |
#load_revision(revision) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/spina/pro/page_revisions/page_decorator.rb', line 11 def load_revision(revision) Spina.locales.each do |locale| send("#{locale}_content=", revision.send("#{locale}_content")) end self.draft = revision.draft end |
#save_revision!(revision = nil, updated_by: nil, draft: true) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/spina/pro/page_revisions/page_decorator.rb', line 18 def save_revision!(revision = nil, updated_by: nil, draft: true) # Don't create a new revision if nothing changed return if revision.nil? && !json_attributes_changed? revision ||= page_revisions.create copy_content_to_revision(revision) revision.update(updated_by: updated_by, draft: draft) end |