Conversion in a gem finished
* specs are working again * added railitie * added missing migration (acts-as-taggable) * cleanups
This commit is contained in:
		
							parent
							
								
									dae4c2ea0a
								
							
						
					
					
						commit
						a45f502f44
					
				
							
								
								
									
										3
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								Gemfile
									
									
									
									
									
								
							@ -5,9 +5,12 @@ gem "rails", "3.0.7"
 | 
				
			|||||||
gem "sqlite3"
 | 
					gem "sqlite3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gem "rspec-rails", ">= 2.6.0"
 | 
					gem "rspec-rails", ">= 2.6.0"
 | 
				
			||||||
 | 
					gem "database_cleaner"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
 | 
					# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
 | 
				
			||||||
# gem 'ruby-debug'
 | 
					# gem 'ruby-debug'
 | 
				
			||||||
# gem 'ruby-debug19'
 | 
					# gem 'ruby-debug19'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gem 'refinerycms'
 | 
				
			||||||
 | 
					gem 'refinerycms-blog'
 | 
				
			||||||
gem 'refinerycms-wordpress-import', :path => './'
 | 
					gem 'refinerycms-wordpress-import', :path => './'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										13
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Gemfile.lock
									
									
									
									
									
								
							@ -4,7 +4,7 @@ PATH
 | 
				
			|||||||
    refinerycms-wordpress-import (0.0.1)
 | 
					    refinerycms-wordpress-import (0.0.1)
 | 
				
			||||||
      nokogiri (~> 1.4.4)
 | 
					      nokogiri (~> 1.4.4)
 | 
				
			||||||
      refinerycms (~> 1.0.0)
 | 
					      refinerycms (~> 1.0.0)
 | 
				
			||||||
      refinerycms-blog (~> 1.3.2)
 | 
					      refinerycms-blog (~> 1.5.2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GEM
 | 
					GEM
 | 
				
			||||||
  remote: http://rubygems.org/
 | 
					  remote: http://rubygems.org/
 | 
				
			||||||
@ -36,6 +36,7 @@ GEM
 | 
				
			|||||||
      activemodel (= 3.0.7)
 | 
					      activemodel (= 3.0.7)
 | 
				
			||||||
      activesupport (= 3.0.7)
 | 
					      activesupport (= 3.0.7)
 | 
				
			||||||
    activesupport (3.0.7)
 | 
					    activesupport (3.0.7)
 | 
				
			||||||
 | 
					    acts-as-taggable-on (2.0.6)
 | 
				
			||||||
    acts_as_indexed (0.7.2)
 | 
					    acts_as_indexed (0.7.2)
 | 
				
			||||||
    arel (2.0.10)
 | 
					    arel (2.0.10)
 | 
				
			||||||
    awesome_nested_set (2.0.0)
 | 
					    awesome_nested_set (2.0.0)
 | 
				
			||||||
@ -43,6 +44,7 @@ GEM
 | 
				
			|||||||
    babosa (0.3.4)
 | 
					    babosa (0.3.4)
 | 
				
			||||||
    bcrypt-ruby (2.1.4)
 | 
					    bcrypt-ruby (2.1.4)
 | 
				
			||||||
    builder (2.1.2)
 | 
					    builder (2.1.2)
 | 
				
			||||||
 | 
					    database_cleaner (0.6.7)
 | 
				
			||||||
    devise (1.3.4)
 | 
					    devise (1.3.4)
 | 
				
			||||||
      bcrypt-ruby (~> 2.1.2)
 | 
					      bcrypt-ruby (~> 2.1.2)
 | 
				
			||||||
      orm_adapter (~> 0.0.3)
 | 
					      orm_adapter (~> 0.0.3)
 | 
				
			||||||
@ -104,9 +106,11 @@ GEM
 | 
				
			|||||||
      friendly_id_globalize3 (~> 3.2.1)
 | 
					      friendly_id_globalize3 (~> 3.2.1)
 | 
				
			||||||
      refinerycms-core (= 1.0.0)
 | 
					      refinerycms-core (= 1.0.0)
 | 
				
			||||||
    refinerycms-base (1.0.0)
 | 
					    refinerycms-base (1.0.0)
 | 
				
			||||||
    refinerycms-blog (1.3.2)
 | 
					    refinerycms-blog (1.5.2)
 | 
				
			||||||
 | 
					      acts-as-taggable-on
 | 
				
			||||||
      filters_spam (~> 0.2)
 | 
					      filters_spam (~> 0.2)
 | 
				
			||||||
      refinerycms (>= 0.9.8)
 | 
					      refinerycms-core (~> 1.0.0)
 | 
				
			||||||
 | 
					      seo_meta (~> 1.1.0)
 | 
				
			||||||
    refinerycms-core (1.0.0)
 | 
					    refinerycms-core (1.0.0)
 | 
				
			||||||
      acts_as_indexed (~> 0.7)
 | 
					      acts_as_indexed (~> 0.7)
 | 
				
			||||||
      awesome_nested_set (~> 2.0)
 | 
					      awesome_nested_set (~> 2.0)
 | 
				
			||||||
@ -166,7 +170,10 @@ PLATFORMS
 | 
				
			|||||||
  ruby
 | 
					  ruby
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEPENDENCIES
 | 
					DEPENDENCIES
 | 
				
			||||||
 | 
					  database_cleaner
 | 
				
			||||||
  rails (= 3.0.7)
 | 
					  rails (= 3.0.7)
 | 
				
			||||||
 | 
					  refinerycms
 | 
				
			||||||
 | 
					  refinerycms-blog
 | 
				
			||||||
  refinerycms-wordpress-import!
 | 
					  refinerycms-wordpress-import!
 | 
				
			||||||
  rspec-rails (>= 2.6.0)
 | 
					  rspec-rails (>= 2.6.0)
 | 
				
			||||||
  sqlite3
 | 
					  sqlite3
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								lib/refinerycms-wordpress-import.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								lib/refinerycms-wordpress-import.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
 | 
					  module WordPress
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require 'wordpress'
 | 
				
			||||||
@ -1,8 +1,7 @@
 | 
				
			|||||||
require 'refinerycms'
 | 
					 | 
				
			||||||
require 'refinerycms-blog'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module Refinery
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require 'wordpress'
 | 
				
			||||||
 | 
				
			|||||||
@ -3,56 +3,36 @@ require 'wordpress'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace :wordpress do
 | 
					namespace :wordpress do
 | 
				
			||||||
  desc "Reset the blog relevant tables for a clean import"
 | 
					  desc "Reset the blog relevant tables for a clean import"
 | 
				
			||||||
  task :reset do
 | 
					  task :reset_blog do
 | 
				
			||||||
    Rake::Task["environment"].invoke
 | 
					    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} ..."
 | 
					      p "Truncating #{table_name} ..."
 | 
				
			||||||
      ActiveRecord::Base.connection.execute "TRUNCATE TABLE #{table_name}"
 | 
					      ActiveRecord::Base.connection.execute "DELETE FROM #{table_name}"
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  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|
 | 
					  task :import, :file_name do |task, params|
 | 
				
			||||||
    Rake::Task["environment"].invoke
 | 
					    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
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  desc "New import (testing)"
 | 
					  desc "New import (testing)"
 | 
				
			||||||
@ -64,7 +44,7 @@ namespace :wordpress do
 | 
				
			|||||||
      raise "Given file '#{file_name}' no file or not readable."
 | 
					      raise "Given file '#{file_name}' no file or not readable."
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dump = WordPress::Dump.new(file_name)
 | 
					    dump = Refinery::WordPress::Dump.new(file_name)
 | 
				
			||||||
    p dump.authors
 | 
					    p dump.authors
 | 
				
			||||||
    p dump.pages
 | 
					    p dump.pages
 | 
				
			||||||
    dump.posts.each do |post|
 | 
					    dump.posts.each do |post|
 | 
				
			||||||
@ -77,7 +57,7 @@ namespace :wordpress do
 | 
				
			|||||||
  end
 | 
					  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|
 | 
					  task :import_clean, :file_name do |task, params|
 | 
				
			||||||
    Rake::Task["wordpress:reset"].invoke
 | 
					    Rake::Task["wordpress:reset"].invoke
 | 
				
			||||||
    Rake::Task["wordpress:import"].invoke(params[:file_name])
 | 
					    Rake::Task["wordpress:import"].invoke(params[:file_name])
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,9 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require 'nokogiri'
 | 
				
			||||||
require 'wordpress/author'
 | 
					require 'wordpress/author'
 | 
				
			||||||
require 'wordpress/tag'
 | 
					require 'wordpress/tag'
 | 
				
			||||||
require 'wordpress/category'
 | 
					require 'wordpress/category'
 | 
				
			||||||
@ -9,3 +11,5 @@ require 'wordpress/page'
 | 
				
			|||||||
require 'wordpress/post'
 | 
					require 'wordpress/post'
 | 
				
			||||||
require 'wordpress/comment'
 | 
					require 'wordpress/comment'
 | 
				
			||||||
require 'wordpress/dump'
 | 
					require 'wordpress/dump'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require "wordpress/railtie" 
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Author
 | 
					    class Author
 | 
				
			||||||
      attr_reader :author_node
 | 
					      attr_reader :author_node
 | 
				
			||||||
@ -33,3 +34,4 @@ module WordPress
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Category
 | 
					    class Category
 | 
				
			||||||
      attr_accessor :name
 | 
					      attr_accessor :name
 | 
				
			||||||
@ -15,3 +16,4 @@ module WordPress
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Comment
 | 
					    class Comment
 | 
				
			||||||
      attr_reader :node
 | 
					      attr_reader :node
 | 
				
			||||||
@ -44,3 +45,4 @@ module WordPress
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,41 +1,46 @@
 | 
				
			|||||||
require 'nokogiri'
 | 
					module Refinery
 | 
				
			||||||
 | 
					 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Dump
 | 
					    class Dump
 | 
				
			||||||
      attr_reader :doc
 | 
					      attr_reader :doc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def initialize(file_name)
 | 
					      def initialize(file_name)
 | 
				
			||||||
 | 
					        file_name = File.absolute_path(file_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        raise "Given file '#{file_name}' no file or not readable." \
 | 
				
			||||||
 | 
					          unless File.file?(file_name) && File.readable?(file_name)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
        file = File.open(file_name)
 | 
					        file = File.open(file_name)
 | 
				
			||||||
        @doc = Nokogiri::XML(file)
 | 
					        @doc = Nokogiri::XML(file)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def authors
 | 
					      def authors
 | 
				
			||||||
        doc.xpath("//wp:author").collect do |author|
 | 
					        doc.xpath("//wp:author").collect do |author|
 | 
				
			||||||
        WordPress::Author.new(author)
 | 
					          Author.new(author)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def pages
 | 
					      def pages
 | 
				
			||||||
        doc.xpath("//item[wp:post_type = 'page']").collect do |page|
 | 
					        doc.xpath("//item[wp:post_type = 'page']").collect do |page|
 | 
				
			||||||
        WordPress::Page.new(page)
 | 
					          Page.new(page)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def posts
 | 
					      def posts
 | 
				
			||||||
        doc.xpath("//item[wp:post_type = 'post']").collect do |post|
 | 
					        doc.xpath("//item[wp:post_type = 'post']").collect do |post|
 | 
				
			||||||
        WordPress::Post.new(post)
 | 
					          Post.new(post)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def tags
 | 
					      def tags
 | 
				
			||||||
        doc.xpath("//wp:tag/wp:tag_slug").collect do |tag|
 | 
					        doc.xpath("//wp:tag/wp:tag_slug").collect do |tag|
 | 
				
			||||||
        WordPress::Tag.new(tag.text)
 | 
					          Tag.new(tag.text)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def categories
 | 
					      def categories
 | 
				
			||||||
        doc.xpath("//wp:category/wp:cat_name").collect do |category|
 | 
					        doc.xpath("//wp:category/wp:cat_name").collect do |category|
 | 
				
			||||||
        WordPress::Category.new(category.text)
 | 
					          Category.new(category.text)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Page
 | 
					    class Page
 | 
				
			||||||
      attr_reader :node
 | 
					      attr_reader :node
 | 
				
			||||||
@ -55,3 +56,4 @@ module WordPress
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,9 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Post < Page
 | 
					    class Post < Page
 | 
				
			||||||
      def tags
 | 
					      def tags
 | 
				
			||||||
        node.xpath("category[@domain='post_tag']").collect do |tag_node| 
 | 
					        node.xpath("category[@domain='post_tag']").collect do |tag_node| 
 | 
				
			||||||
        WordPress::Tag.new(tag_node.text)
 | 
					          Tag.new(tag_node.text)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -12,26 +13,29 @@ module WordPress
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      def categories
 | 
					      def categories
 | 
				
			||||||
        node.xpath("category[@domain='category']").collect do |cat|
 | 
					        node.xpath("category[@domain='category']").collect do |cat|
 | 
				
			||||||
        WordPress::Category.new(cat.text)
 | 
					          Category.new(cat.text)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def comments
 | 
					      def comments
 | 
				
			||||||
        node.xpath("wp:comment").collect do |comment_node|
 | 
					        node.xpath("wp:comment").collect do |comment_node|
 | 
				
			||||||
        WordPress::Comment.new(comment_node)
 | 
					          Comment.new(comment_node)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def to_refinery
 | 
					      def to_refinery
 | 
				
			||||||
      user = User.find_by_username creator
 | 
					        user = ::User.find_by_username creator
 | 
				
			||||||
        raise "Referenced User doesn't exist! Make sure the authors are imported first." \
 | 
					        raise "Referenced User doesn't exist! Make sure the authors are imported first." \
 | 
				
			||||||
          unless user
 | 
					          unless user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      post = BlogPost.create! :title => title, :body => content, :draft => draft?, 
 | 
					        post = BlogPost.new
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        post = ::BlogPost.create! :title => title, :body => content, :draft => draft?, 
 | 
				
			||||||
          :published_at => post_date, :created_at => post_date, :author => user,
 | 
					          :published_at => post_date, :created_at => post_date, :author => user,
 | 
				
			||||||
          :tag_list => tag_list
 | 
					          :tag_list => tag_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      BlogPost.transaction do
 | 
					        ::BlogPost.transaction do
 | 
				
			||||||
          categories.each do |category|
 | 
					          categories.each do |category|
 | 
				
			||||||
            post.categories << category.to_refinery
 | 
					            post.categories << category.to_refinery
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
@ -47,3 +51,4 @@ module WordPress
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								lib/wordpress/railtie.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								lib/wordpress/railtie.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
 | 
					  module WordPress
 | 
				
			||||||
 | 
					    class Railtie < Rails::Railtie
 | 
				
			||||||
 | 
					      rake_tasks do
 | 
				
			||||||
 | 
					        load "tasks/wordpress.rake"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					module Refinery
 | 
				
			||||||
  module WordPress
 | 
					  module WordPress
 | 
				
			||||||
    class Tag
 | 
					    class Tag
 | 
				
			||||||
      attr_accessor :name
 | 
					      attr_accessor :name
 | 
				
			||||||
@ -11,8 +12,9 @@ module WordPress
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def to_refinery
 | 
					      def to_refinery
 | 
				
			||||||
      ActsAsTaggableOn::Tag.find_or_create_by_name(name)
 | 
					        ::ActsAsTaggableOn::Tag.find_or_create_by_name(name)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -3,11 +3,17 @@
 | 
				
			|||||||
Gem::Specification.new do |s|
 | 
					Gem::Specification.new do |s|
 | 
				
			||||||
  s.name        = "refinerycms-wordpress-import"
 | 
					  s.name        = "refinerycms-wordpress-import"
 | 
				
			||||||
  s.summary     = "Import WordPress XML dumps into refinerycms(-blog)."
 | 
					  s.summary     = "Import WordPress XML dumps into refinerycms(-blog)."
 | 
				
			||||||
  s.description = "Insert Refinerycms-wordpress-import description."
 | 
					  s.description = "This gem imports a WordPress Dump into refinerycms (Page, User) and refinerycms-blog (BlogPost, BlogCategory, Tag, BlogComment)"
 | 
				
			||||||
  s.files = Dir["{app,lib,config}/**/*"] + ["MIT-LICENSE", "Rakefile", "Gemfile", "README.rdoc"]
 | 
					 | 
				
			||||||
  s.version     = "0.0.1"
 | 
					  s.version     = "0.0.1"
 | 
				
			||||||
 | 
					  s.authors     = ['Marc Remolt']
 | 
				
			||||||
 | 
					  s.date        = "2011-06-02"
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  s.add_dependency 'refinerycms', '~> 1.0.0'
 | 
					  s.add_dependency 'refinerycms', '~> 1.0.0'
 | 
				
			||||||
  s.add_dependency 'refinerycms-blog', '~> 1.3.2'
 | 
					  s.add_dependency 'refinerycms-blog', '~> 1.5.2'
 | 
				
			||||||
  s.add_dependency 'nokogiri', '~> 1.4.4'
 | 
					  s.add_dependency 'nokogiri', '~> 1.4.4'
 | 
				
			||||||
 | 
					  #s.add_dependency 'acts-as-taggable-on'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.add_development_dependency 'database_cleaner'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.files       = Dir["{app,lib,config}/**/*"] + ["MIT-LICENSE", "Rakefile", "Gemfile", "README.rdoc"]
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,8 @@
 | 
				
			|||||||
require File.expand_path('../boot', __FILE__)
 | 
					require File.expand_path('../boot', __FILE__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require "active_model/railtie"
 | 
					require 'rails/all'
 | 
				
			||||||
require "active_record/railtie"
 | 
					 | 
				
			||||||
require "action_controller/railtie"
 | 
					 | 
				
			||||||
require "action_view/railtie"
 | 
					 | 
				
			||||||
require "action_mailer/railtie"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Bundler.require
 | 
					Bundler.require
 | 
				
			||||||
require "refinerycms_wordpress_import"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Dummy
 | 
					module Dummy
 | 
				
			||||||
  class Application < Rails::Application
 | 
					  class Application < Rails::Application
 | 
				
			||||||
 | 
				
			|||||||
@ -6,5 +6,3 @@ if File.exist?(gemfile)
 | 
				
			|||||||
  require 'bundler'
 | 
					  require 'bundler'
 | 
				
			||||||
  Bundler.setup
 | 
					  Bundler.setup
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					 | 
				
			||||||
$:.unshift File.expand_path('../../../../lib', __FILE__)
 | 
					 | 
				
			||||||
							
								
								
									
										20
									
								
								spec/dummy/config/database.yml.mysql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								spec/dummy/config/database.yml.mysql
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					login: &login
 | 
				
			||||||
 | 
					  adapter: mysql2
 | 
				
			||||||
 | 
					  host: localhost
 | 
				
			||||||
 | 
					  username: root
 | 
				
			||||||
 | 
					  password:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					development: &development
 | 
				
			||||||
 | 
					  database: your_local_database
 | 
				
			||||||
 | 
					  <<: *login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test: &test
 | 
				
			||||||
 | 
					  database: your_test_database
 | 
				
			||||||
 | 
					  <<: *login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					production: &production
 | 
				
			||||||
 | 
					  adapter: mysql2
 | 
				
			||||||
 | 
					  host: localhost
 | 
				
			||||||
 | 
					  database: your_production_database
 | 
				
			||||||
 | 
					  username: your_production_database_login
 | 
				
			||||||
 | 
					  password: your_production_database_password
 | 
				
			||||||
							
								
								
									
										57
									
								
								spec/dummy/config/database.yml.postgresql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								spec/dummy/config/database.yml.postgresql
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					# PostgreSQL. Versions 7.4 and 8.x are supported.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Install the ruby-postgres driver:
 | 
				
			||||||
 | 
					#   gem install ruby-postgres
 | 
				
			||||||
 | 
					# On Mac OS X:
 | 
				
			||||||
 | 
					#   gem install ruby-postgres -- --include=/usr/local/pgsql
 | 
				
			||||||
 | 
					# On Windows:
 | 
				
			||||||
 | 
					#   gem install ruby-postgres
 | 
				
			||||||
 | 
					#       Choose the win32 build.
 | 
				
			||||||
 | 
					#       Install PostgreSQL and put its /bin directory on your path.
 | 
				
			||||||
 | 
					login: &login
 | 
				
			||||||
 | 
					  adapter: postgresql
 | 
				
			||||||
 | 
					  encoding: unicode
 | 
				
			||||||
 | 
					  username: postgres
 | 
				
			||||||
 | 
					  password: postgres
 | 
				
			||||||
 | 
					  pool: 5
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					development: &development
 | 
				
			||||||
 | 
					  database: your_local_database
 | 
				
			||||||
 | 
					  <<: *login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Connect on a TCP socket. Omitted by default since the client uses a
 | 
				
			||||||
 | 
					  # domain socket that doesn't need configuration. Windows does not have
 | 
				
			||||||
 | 
					  # domain sockets, so uncomment these lines.
 | 
				
			||||||
 | 
					  #host: localhost
 | 
				
			||||||
 | 
					  #port: 5432
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Schema search path. The server defaults to $user,public
 | 
				
			||||||
 | 
					  #schema_search_path: myapp,sharedapp,public
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Minimum log levels, in increasing order:
 | 
				
			||||||
 | 
					  #   debug5, debug4, debug3, debug2, debug1,
 | 
				
			||||||
 | 
					  #   log, notice, warning, error, fatal, and panic
 | 
				
			||||||
 | 
					  # The server defaults to notice.
 | 
				
			||||||
 | 
					  #min_messages: warning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Warning: The database defined as "test" will be erased and
 | 
				
			||||||
 | 
					# re-generated from your development database when you run "rake".
 | 
				
			||||||
 | 
					# Do not set this db to the same as development or production.
 | 
				
			||||||
 | 
					test: &test
 | 
				
			||||||
 | 
					  database: your_test_database
 | 
				
			||||||
 | 
					  <<: *login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Warning: The database defined as "cucumber" will be erased and
 | 
				
			||||||
 | 
					# re-generated from your development database when you run "rake".
 | 
				
			||||||
 | 
					# Do not set this db to the same as development or production.
 | 
				
			||||||
 | 
					cucumber: &cucumber
 | 
				
			||||||
 | 
					  database: your_cucumber_database
 | 
				
			||||||
 | 
					  <<: *login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					production: &production
 | 
				
			||||||
 | 
					  adapter: postgresql
 | 
				
			||||||
 | 
					  encoding: unicode
 | 
				
			||||||
 | 
					  pool: 5
 | 
				
			||||||
 | 
					  database: your_production_database
 | 
				
			||||||
 | 
					  username: your_production_database_login
 | 
				
			||||||
 | 
					  password: your_production_database_password
 | 
				
			||||||
							
								
								
									
										26
									
								
								spec/dummy/config/database.yml.sqlite3
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								spec/dummy/config/database.yml.sqlite3
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					# SQLite version 3.x
 | 
				
			||||||
 | 
					development:
 | 
				
			||||||
 | 
					  adapter: <%= "jdbc" if defined?(JRUBY_PLATFORM) %>sqlite3
 | 
				
			||||||
 | 
					  database: db/development.sqlite3
 | 
				
			||||||
 | 
					  timeout: 5000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Warning: The database defined as 'test' will be erased and
 | 
				
			||||||
 | 
					# re-generated from your development database when you run 'rake'.
 | 
				
			||||||
 | 
					# Do not set this db to the same as development or production.
 | 
				
			||||||
 | 
					test:
 | 
				
			||||||
 | 
					  adapter: <%= "jdbc" if defined?(JRUBY_PLATFORM) %>sqlite3
 | 
				
			||||||
 | 
					  database: db/test.sqlite3
 | 
				
			||||||
 | 
					  timeout: 5000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Warning: The database defined as 'cucumber' will be erased and
 | 
				
			||||||
 | 
					# re-generated from your development database when you run 'rake'.
 | 
				
			||||||
 | 
					# Do not set this db to the same as development or production.
 | 
				
			||||||
 | 
					cucumber:
 | 
				
			||||||
 | 
					  adapter: <%= "jdbc" if defined?(JRUBY_PLATFORM) %>sqlite3
 | 
				
			||||||
 | 
					  database: db/cucumber.sqlite3
 | 
				
			||||||
 | 
					  timeout: 5000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					production:
 | 
				
			||||||
 | 
					  adapter: <%= "jdbc" if defined?(JRUBY_PLATFORM) %>sqlite3
 | 
				
			||||||
 | 
					  database: db/production.sqlite3
 | 
				
			||||||
 | 
					  timeout: 5000
 | 
				
			||||||
@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					class ActsAsTaggableOnMigration < ActiveRecord::Migration
 | 
				
			||||||
 | 
					  def self.up
 | 
				
			||||||
 | 
					    create_table :tags do |t|
 | 
				
			||||||
 | 
					      t.string :name
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    create_table :taggings do |t|
 | 
				
			||||||
 | 
					      t.references :tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # You should make sure that the column created is
 | 
				
			||||||
 | 
					      # long enough to store the required class names.
 | 
				
			||||||
 | 
					      t.references :taggable, :polymorphic => true
 | 
				
			||||||
 | 
					      t.references :tagger, :polymorphic => true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      t.string :context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      t.datetime :created_at
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    add_index :taggings, :tag_id
 | 
				
			||||||
 | 
					    add_index :taggings, [:taggable_id, :taggable_type, :context]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def self.down
 | 
				
			||||||
 | 
					    drop_table :taggings
 | 
				
			||||||
 | 
					    drop_table :tags
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
@ -10,7 +10,7 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# It's strongly recommended to check this file into your version control system.
 | 
					# It's strongly recommended to check this file into your version control system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ActiveRecord::Schema.define(:version => 20110601190333) do
 | 
					ActiveRecord::Schema.define(:version => 20110602094445) do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "blog_categories", :force => true do |t|
 | 
					  create_table "blog_categories", :force => true do |t|
 | 
				
			||||||
    t.string   "title"
 | 
					    t.string   "title"
 | 
				
			||||||
@ -184,6 +184,23 @@ ActiveRecord::Schema.define(:version => 20110601190333) do
 | 
				
			|||||||
  add_index "slugs", ["name", "sluggable_type", "scope", "sequence"], :name => "index_slugs_on_n_s_s_and_s", :unique => true
 | 
					  add_index "slugs", ["name", "sluggable_type", "scope", "sequence"], :name => "index_slugs_on_n_s_s_and_s", :unique => true
 | 
				
			||||||
  add_index "slugs", ["sluggable_id"], :name => "index_slugs_on_sluggable_id"
 | 
					  add_index "slugs", ["sluggable_id"], :name => "index_slugs_on_sluggable_id"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_table "taggings", :force => true do |t|
 | 
				
			||||||
 | 
					    t.integer  "tag_id"
 | 
				
			||||||
 | 
					    t.integer  "taggable_id"
 | 
				
			||||||
 | 
					    t.string   "taggable_type"
 | 
				
			||||||
 | 
					    t.integer  "tagger_id"
 | 
				
			||||||
 | 
					    t.string   "tagger_type"
 | 
				
			||||||
 | 
					    t.string   "context"
 | 
				
			||||||
 | 
					    t.datetime "created_at"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id"
 | 
				
			||||||
 | 
					  add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_table "tags", :force => true do |t|
 | 
				
			||||||
 | 
					    t.string "name"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "user_plugins", :force => true do |t|
 | 
					  create_table "user_plugins", :force => true do |t|
 | 
				
			||||||
    t.integer "user_id"
 | 
					    t.integer "user_id"
 | 
				
			||||||
    t.string  "name"
 | 
					    t.string  "name"
 | 
				
			||||||
 | 
				
			|||||||
@ -1,12 +1,11 @@
 | 
				
			|||||||
require 'spec_helper'
 | 
					require 'spec_helper'
 | 
				
			||||||
require 'wordpress'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe WordPress::Dump, :type => :model do
 | 
					describe Refinery::WordPress::Dump, :type => :model do
 | 
				
			||||||
  let(:file_name) { File.realpath(File.join(File.dirname(__FILE__), '../../fixtures/wordpress_dump.xml')) }
 | 
					  let(:file_name) { File.realpath(File.join(File.dirname(__FILE__), '../../fixtures/wordpress_dump.xml')) }
 | 
				
			||||||
  let(:dump) { WordPress::Dump.new(file_name) }
 | 
					  let(:dump) { Refinery::WordPress::Dump.new(file_name) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it "should create a Dump object given a xml file" do
 | 
					  it "should create a Dump object given a xml file" do
 | 
				
			||||||
    dump.should be_a WordPress::Dump
 | 
					    dump.should be_a Refinery::WordPress::Dump
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it "should include a Nokogiri::XML object" do
 | 
					  it "should include a Nokogiri::XML object" do
 | 
				
			||||||
@ -15,8 +14,8 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  describe "#tags" do
 | 
					  describe "#tags" do
 | 
				
			||||||
    let(:tags) do
 | 
					    let(:tags) do
 | 
				
			||||||
      [ WordPress::Tag.new('css'), WordPress::Tag.new('html'),
 | 
					      [ Refinery::WordPress::Tag.new('css'), Refinery::WordPress::Tag.new('html'),
 | 
				
			||||||
        WordPress::Tag.new('php'), WordPress::Tag.new('ruby')]
 | 
					        Refinery::WordPress::Tag.new('php'), Refinery::WordPress::Tag.new('ruby')]
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "should return all included tags" do
 | 
					    it "should return all included tags" do
 | 
				
			||||||
@ -34,7 +33,7 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should create a ActsAsTaggableOn::Tag" do
 | 
					        it "should create a ActsAsTaggableOn::Tag" do
 | 
				
			||||||
          ActsAsTaggableOn::Tag.should have(1).record
 | 
					          ::ActsAsTaggableOn::Tag.should have(1).record
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should copy the name over to the Tag object" do
 | 
					        it "should copy the name over to the Tag object" do
 | 
				
			||||||
@ -46,8 +45,8 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  describe "#categories" do
 | 
					  describe "#categories" do
 | 
				
			||||||
    let(:categories) do
 | 
					    let(:categories) do
 | 
				
			||||||
      [ WordPress::Category.new('Rant'), WordPress::Category.new('Tutorials'),
 | 
					      [ Refinery::WordPress::Category.new('Rant'), Refinery::WordPress::Category.new('Tutorials'),
 | 
				
			||||||
       WordPress::Category.new('Uncategorized') ]
 | 
					       Refinery::WordPress::Category.new('Uncategorized') ]
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "should return all included categories" do
 | 
					    it "should return all included categories" do
 | 
				
			||||||
@ -108,7 +107,7 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
          Page.should have(@count + 1).record
 | 
					          Page.should have(@count + 1).record
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should copy the attributes from WordPress::Page" do
 | 
					        it "should copy the attributes from Refinery::WordPress::Page" do
 | 
				
			||||||
          @page.title.should == page.title
 | 
					          @page.title.should == page.title
 | 
				
			||||||
          @page.draft.should == page.draft?
 | 
					          @page.draft.should == page.draft?
 | 
				
			||||||
          @page.created_at.should == page.post_date
 | 
					          @page.created_at.should == page.post_date
 | 
				
			||||||
@ -143,7 +142,7 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
          @user.should be_persisted
 | 
					          @user.should be_persisted
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should have copied the attributes from WordPress::Author" do
 | 
					        it "should have copied the attributes from Refinery::WordPress::Author" do
 | 
				
			||||||
          author.login.should == @user.username
 | 
					          author.login.should == @user.username
 | 
				
			||||||
          author.email.should == @user.email
 | 
					          author.email.should == @user.email
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
@ -172,15 +171,15 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
      
 | 
					      
 | 
				
			||||||
      describe "#categories" do
 | 
					      describe "#categories" do
 | 
				
			||||||
        it { post.categories.should have(1).category }
 | 
					        it { post.categories.should have(1).category }
 | 
				
			||||||
        it { post.categories.first.should == WordPress::Category.new('Rant') }
 | 
					        it { post.categories.first.should == Refinery::WordPress::Category.new('Rant') }
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      describe "#tags" do
 | 
					      describe "#tags" do
 | 
				
			||||||
        it { post.tags.should have(3).tags }
 | 
					        it { post.tags.should have(3).tags }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it { post.tags.should include(WordPress::Tag.new('css')) }
 | 
					        it { post.tags.should include(Refinery::WordPress::Tag.new('css')) }
 | 
				
			||||||
        it { post.tags.should include(WordPress::Tag.new('html')) }
 | 
					        it { post.tags.should include(Refinery::WordPress::Tag.new('html')) }
 | 
				
			||||||
        it { post.tags.should include(WordPress::Tag.new('php')) }
 | 
					        it { post.tags.should include(Refinery::WordPress::Tag.new('php')) }
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      it { post.tag_list.should == 'css,html,php' }
 | 
					      it { post.tag_list.should == 'css,html,php' }
 | 
				
			||||||
@ -212,7 +211,7 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
              @comment.should be_new_record
 | 
					              @comment.should be_new_record
 | 
				
			||||||
            end
 | 
					            end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            it "should copy the attributes from WordPress::Comment" do
 | 
					            it "should copy the attributes from Refinery::WordPress::Comment" do
 | 
				
			||||||
              @comment.name.should == comment.author
 | 
					              @comment.name.should == comment.author
 | 
				
			||||||
              @comment.email.should == comment.email
 | 
					              @comment.email.should == comment.email
 | 
				
			||||||
              @comment.body.should == comment.content
 | 
					              @comment.body.should == comment.content
 | 
				
			||||||
@ -233,7 +232,7 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        it { BlogPost.should have(1).record } 
 | 
					        it { BlogPost.should have(1).record } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should copy the attributes from WordPress::Page" do
 | 
					        it "should copy the attributes from Refinery::WordPress::Page" do
 | 
				
			||||||
          @post.title.should == post.title
 | 
					          @post.title.should == post.title
 | 
				
			||||||
          @post.body.should == post.content
 | 
					          @post.body.should == post.content
 | 
				
			||||||
          @post.draft.should == post.draft?
 | 
					          @post.draft.should == post.draft?
 | 
				
			||||||
@ -242,11 +241,11 @@ describe WordPress::Dump, :type => :model do
 | 
				
			|||||||
          @post.author.username.should == post.creator
 | 
					          @post.author.username.should == post.creator
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should assign a category for each WordPress::Category" do
 | 
					        it "should assign a category for each Refinery::WordPress::Category" do
 | 
				
			||||||
          @post.categories.should have(post.categories.count).records
 | 
					          @post.categories.should have(post.categories.count).records
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        it "should assign a comment for each WordPress::Comment" do
 | 
					        it "should assign a comment for each Refinery::WordPress::Comment" do
 | 
				
			||||||
          @post.comments.should have(post.comments.count).records
 | 
					          @post.comments.should have(post.comments.count).records
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@ ENV["RAILS_ENV"] = "test"
 | 
				
			|||||||
require File.expand_path("../dummy/config/environment.rb",  __FILE__)
 | 
					require File.expand_path("../dummy/config/environment.rb",  __FILE__)
 | 
				
			||||||
require "rails/test_help"
 | 
					require "rails/test_help"
 | 
				
			||||||
require "rspec/rails"
 | 
					require "rspec/rails"
 | 
				
			||||||
 | 
					require "database_cleaner"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ActionMailer::Base.delivery_method = :test
 | 
					ActionMailer::Base.delivery_method = :test
 | 
				
			||||||
ActionMailer::Base.perform_deliveries = true
 | 
					ActionMailer::Base.perform_deliveries = true
 | 
				
			||||||
@ -25,4 +26,17 @@ RSpec.configure do |config|
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # == Mock Framework
 | 
					  # == Mock Framework
 | 
				
			||||||
  config.mock_with :rspec
 | 
					  config.mock_with :rspec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config.before(:suite) do
 | 
				
			||||||
 | 
					    DatabaseCleaner.strategy = :transaction
 | 
				
			||||||
 | 
					    DatabaseCleaner.clean_with(:truncation)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config.before(:each) do
 | 
				
			||||||
 | 
					    DatabaseCleaner.start
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config.after(:each) do
 | 
				
			||||||
 | 
					    DatabaseCleaner.clean
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user