Sha256: c4d08167a6b53a59bb9b2402de6f5e401137d17a36c913532c9cb7a50b027ac0

Contents?: true

Size: 862 Bytes

Versions: 8

Compression:

Stored size: 862 Bytes

Contents

class Pulitzer::VersionsController < Pulitzer::ApplicationController
  before_action :set_version

  def update
    update_active_version
    new_version  = @post.create_preview_version
    @version.update(status: @status)
    if @active_version
      Pulitzer::CloneVersion.new(@active_version, new_version).call
    else
      Pulitzer::CreatePostContentElements.new(@post).call
    end
    redirect_to post_content_elements_path(@post), notice: "Post #{@status}"
  end

private
  def set_version
    @version  = Pulitzer::Version.find params[:id]
    @post     = @version.post
    @status   = params[:status].to_sym
  end

  def update_active_version
    if @status == :active
      @active_version = @version
      @post.active_version.update(status: :archived) if @post.active_version
    else
      @active_version = @post.active_version
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pulitzer-0.1.10 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.9 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.8 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.7 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.6 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.5 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.4 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.1.3 app/controllers/pulitzer/versions_controller.rb