require 'workarea/blog/import/wordpress/entry' require 'workarea/blog/import/wordpress/entry_parser'
namespace :workarea do
namespace :blog do desc 'Import posts from Wordpress' task :import_wordpress_posts, [:path] => :environment do |t, args| args.with_defaults(path: "#{Rails.root}/data/blog/wordpress.xml") puts 'Importing all Wordpress posts...' blog_name = Workarea.config.wordpress_import[:blog_name] blog = Workarea::Content::Blog.where(name: blog_name).first || Workarea::Content::Blog.create(name: blog_name) doc = Nokogiri::XML(File.open(args[:path])) all_posts = Workarea::Blog::Import::Wordpress::EntryParser.new(doc).parse all_posts.each do |post| Workarea::Blog::Import::Wordpress::Entry.new(post, blog).save end puts 'Wordpress posts imported!' end end
end