Sha256: 78be9004e5645e2b35145eaa3b06a38ec5b5f48c5d625d7403e6828fa28f3511

Contents?: true

Size: 697 Bytes

Versions: 3

Compression:

Stored size: 697 Bytes

Contents

class Pulitzer::CloneVersion

  def initialize(version)
    @version = version
    @post = @version.post
  end

  def call
    new_version = @post.create_processing_version
    @version.content_elements.each do |ce|
      begin
        cloned_content_element = ce.clone_me
        new_version.content_elements << cloned_content_element
      rescue ActiveRecord::RecordInvalid => invalid
        new_version.errors.add(:base, "ContentElement #{ce.id} could not be cloned: #{invalid.record.errors.full_messages.join(', ')}")
      end
    end
    @version.post_tags.each do |pt|
      new_version.post_tags << pt.clone_me
    end
    new_version.update(status: :preview)
    new_version
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pulitzer-0.2.2 app/interactions/pulitzer/clone_version.rb
pulitzer-0.2.1 app/interactions/pulitzer/clone_version.rb
pulitzer-0.2.0 app/interactions/pulitzer/clone_version.rb