SpontaneousCMS/spontaneous

View on GitHub
lib/spontaneous/publishing/steps/activate_revision.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Spontaneous::Publishing::Steps
  class ActivateRevision < BaseStep

    def count
      3
    end

    def call
      save_state
      progress.stage("activating revision")
      commit_transaction
      set_published_revision
      activate_revision(revision)
    end

    def commit_transaction
      transaction.commit
      progress.step(1, "commiting rendered site => #{revision}")
    end

    def rollback
      previous_revision = @state.published_revision
      site.send(:set_published_revision, previous_revision)
      output_store.revision(previous_revision).activate
    end

    def set_published_revision
      site.send(:set_published_revision, revision)
      progress.step(1, "published revision => #{revision}")
    end

    def activate_revision(r)
      progress.step(1, %(activating revision #{r}))
      output_store.revision(r).activate
    end

    def save_state
      @state = site.state
    end

    def output_store
      site.output_store
    end
  end
end