Conversion in a gem finished

* specs are working again
* added railitie
* added missing migration (acts-as-taggable)
* cleanups
This commit is contained in:
Marc Remolt
2011-06-02 14:41:31 +02:00
parent dae4c2ea0a
commit a45f502f44
25 changed files with 476 additions and 285 deletions

View File

@@ -3,56 +3,36 @@ require 'wordpress'
namespace :wordpress do
desc "Reset the blog relevant tables for a clean import"
task :reset do
task :reset_blog do
Rake::Task["environment"].invoke
%w(blog_categories blog_posts).each do |table_name|
%w(taggings tags blog_comments blog_categories blog_posts).each do |table_name|
p "Truncating #{table_name} ..."
ActiveRecord::Base.connection.execute "TRUNCATE TABLE #{table_name}"
ActiveRecord::Base.connection.execute "DELETE FROM #{table_name}"
end
end
desc "Import data from a WordPress XML dump"
desc "import blog data from a Refinery::WordPress XML dump"
task :import_blog, :file_name do |task, params|
Rake::Task["environment"].invoke
dump = Refinery::WordPress::Dump.new(params[:file_name])
dump.authors.each(&:to_refinery)
dump.posts.each(&:to_refinery)
end
desc "Import data from a Refinery::WordPress XML dump"
task :import, :file_name do |task, params|
Rake::Task["environment"].invoke
file_name = File.absolute_path(params[:file_name])
unless File.file?(file_name) && File.readable?(file_name)
raise "Given file '#{file_name}' no file or not readable."
end
file = File.open(file_name)
doc = Nokogiri::XML(file)
file.close
p "Importing blog categories ..."
doc.xpath("//wp:category/wp:cat_name").each do |category|
BlogCategory.exists?(:title => category.text) || BlogCategory.create!(:title => category.text)
end
doc.xpath("//wp:tag/wp:tag_slug").each do |tag|
p tag.text
end
doc.xpath("//item[wp:post_type = 'page']").each do |post|
title = post.xpath("title").text
body = post.xpath("content:encoded").text
author = post.xpath("dc:creator").text
published_at = DateTime.parse(post.xpath("wp:post_date").text)
tags = post.xpath("category[@domain='tag'][not(@nicename)]").collect {|tag| tag.text }
tag_list = tags.join(', ')
categories = post.xpath("category[not(@*)]").collect {|cat| cat.text }
p '*' * 100
p title
p author
p published_at
p tag_list
p categories
end
end
desc "New import (testing)"
@@ -64,7 +44,7 @@ namespace :wordpress do
raise "Given file '#{file_name}' no file or not readable."
end
dump = WordPress::Dump.new(file_name)
dump = Refinery::WordPress::Dump.new(file_name)
p dump.authors
p dump.pages
dump.posts.each do |post|
@@ -77,7 +57,7 @@ namespace :wordpress do
end
desc "Import data from a WordPress XML dump into a clean database (reset first)"
desc "Import data from a Refinery::WordPress XML dump into a clean database (reset first)"
task :import_clean, :file_name do |task, params|
Rake::Task["wordpress:reset"].invoke
Rake::Task["wordpress:import"].invoke(params[:file_name])