Sha256: 6ba5f9473ade74e651ec24e83e0479fa74ca93a8bdd61e3981759403475d80fd

Contents?: true

Size: 1.32 KB

Versions: 7

Compression:

Stored size: 1.32 KB

Contents

class Pulitzer::UpdatePostTypeContentElements
  attr_accessor :post_type, :ptcet, :old_label

  def initialize(ptcet, old_label=nil)
    self.post_type  = ptcet.post_type
    self.ptcet      = ptcet
    self.old_label  = old_label || ptcet.label
  end

  def call
    post_type.posts.each do |post|
      begin
        preview_version = post.get_preview_version!
        post.preview_version.content_elements.where(label: old_label).each do |content_element|
          content_element.update(label: ptcet.label,
            height: ptcet.height,
            width: ptcet.width,
            text_editor: ptcet.text_editor,
            content_element_type: ptcet.content_element_type,
            post_type_content_element_type: ptcet)
        end
      rescue Pulitzer::VersionAccessError
        # if there is no preview version, skip this one.
      end
    end
    post_type.partials.joins(free_form_section: :version).where(pulitzer_versions: {status: 0}).each do |partial|
      partial.content_elements.where(label: old_label).each do |content_element|
        content_element.update(label: ptcet.label,
          height: ptcet.height,
          width: ptcet.width,
          text_editor: ptcet.text_editor,
          content_element_type: ptcet.content_element_type,
          post_type_content_element_type: ptcet)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pulitzer-0.14.4 app/interactions/pulitzer/update_post_type_content_elements.rb
pulitzer-0.14.3 app/interactions/pulitzer/update_post_type_content_elements.rb
pulitzer-0.14.2 app/interactions/pulitzer/update_post_type_content_elements.rb
pulitzer-0.14.1 app/interactions/pulitzer/update_post_type_content_elements.rb
pulitzer-0.14.0 app/interactions/pulitzer/update_post_type_content_elements.rb
pulitzer-0.13.1 app/interactions/pulitzer/update_post_type_content_elements.rb
pulitzer-0.13.0 app/interactions/pulitzer/update_post_type_content_elements.rb