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