class Workarea::Blog::Import::Wordpress::Page

Public Class Methods

new(page_hash) click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 8
def initialize(page_hash)
  @page_hash = page_hash
end

Public Instance Methods

save() click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 12
def save
  if Workarea::Content::Page.where(slug: @page_hash[:new_slug]).present?
    puts "A Page already exists with the slug #{@page_hash[:new_slug]}"
    return
  end
  create_page
  create_redirects
  create_page_content
  puts "Imported #{@page.name}"
  @page
end

Private Instance Methods

cleaned_content() click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 46
def cleaned_content
  Workarea::Blog::Import::Wordpress::ContentCleaner.new(@page_hash[:content], @page_hash[:wordpress_hosname]).clean
end
create_page() click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 26
def create_page
  @page ||= Workarea::Content::Page.create!(
    active: @page_hash[:published?],
    name: @page_hash[:page_title],
    slug: @page_hash[:new_slug]
  )
end
create_page_content() click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 34
def create_page_content
  content = Content.for(@page)
  content.blocks.build(
    area: 'default',
    type_id: :html,
    data: {
      html: cleaned_content
    }
  )
  content.save!
end
create_redirects() click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 50
def create_redirects
  old_path = URI.parse(@page_hash[:url]).path
  new_path = "/pages/#{@page_hash[:new_slug]}"

  new_redirect(old_path, new_path)
  new_redirect("/?#{@page_hash[:guid_path]}", new_path)
end
new_redirect(old_path, new_path) click to toggle source
# File lib/workarea/blog/import/wordpress/page.rb, line 58
def new_redirect(old_path, new_path)
  return if Workarea::Navigation::Redirect.find_by_path(old_path).present?
  Workarea::Navigation::Redirect.create!(
    path: old_path,
    destination: new_path
  )
end