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

@@ -1,13 +1,8 @@
require File.expand_path('../boot', __FILE__)
require "active_model/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_view/railtie"
require "action_mailer/railtie"
require 'rails/all'
Bundler.require
require "refinerycms_wordpress_import"
module Dummy
class Application < Rails::Application

View File

@@ -6,5 +6,3 @@ if File.exist?(gemfile)
require 'bundler'
Bundler.setup
end
$:.unshift File.expand_path('../../../../lib', __FILE__)

View 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

View 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

View 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

View File

@@ -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

View File

@@ -10,7 +10,7 @@
#
# 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|
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", ["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|
t.integer "user_id"
t.string "name"

View File

@@ -1,12 +1,11 @@
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(: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
dump.should be_a WordPress::Dump
dump.should be_a Refinery::WordPress::Dump
end
it "should include a Nokogiri::XML object" do
@@ -15,8 +14,8 @@ describe WordPress::Dump, :type => :model do
describe "#tags" do
let(:tags) do
[ WordPress::Tag.new('css'), WordPress::Tag.new('html'),
WordPress::Tag.new('php'), WordPress::Tag.new('ruby')]
[ Refinery::WordPress::Tag.new('css'), Refinery::WordPress::Tag.new('html'),
Refinery::WordPress::Tag.new('php'), Refinery::WordPress::Tag.new('ruby')]
end
it "should return all included tags" do
@@ -34,7 +33,7 @@ describe WordPress::Dump, :type => :model do
end
it "should create a ActsAsTaggableOn::Tag" do
ActsAsTaggableOn::Tag.should have(1).record
::ActsAsTaggableOn::Tag.should have(1).record
end
it "should copy the name over to the Tag object" do
@@ -46,8 +45,8 @@ describe WordPress::Dump, :type => :model do
describe "#categories" do
let(:categories) do
[ WordPress::Category.new('Rant'), WordPress::Category.new('Tutorials'),
WordPress::Category.new('Uncategorized') ]
[ Refinery::WordPress::Category.new('Rant'), Refinery::WordPress::Category.new('Tutorials'),
Refinery::WordPress::Category.new('Uncategorized') ]
end
it "should return all included categories" do
@@ -108,7 +107,7 @@ describe WordPress::Dump, :type => :model do
Page.should have(@count + 1).record
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.draft.should == page.draft?
@page.created_at.should == page.post_date
@@ -143,7 +142,7 @@ describe WordPress::Dump, :type => :model do
@user.should be_persisted
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.email.should == @user.email
end
@@ -172,15 +171,15 @@ describe WordPress::Dump, :type => :model do
describe "#categories" do
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
describe "#tags" do
it { post.tags.should have(3).tags }
it { post.tags.should include(WordPress::Tag.new('css')) }
it { post.tags.should include(WordPress::Tag.new('html')) }
it { post.tags.should include(WordPress::Tag.new('php')) }
it { post.tags.should include(Refinery::WordPress::Tag.new('css')) }
it { post.tags.should include(Refinery::WordPress::Tag.new('html')) }
it { post.tags.should include(Refinery::WordPress::Tag.new('php')) }
end
it { post.tag_list.should == 'css,html,php' }
@@ -212,7 +211,7 @@ describe WordPress::Dump, :type => :model do
@comment.should be_new_record
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.email.should == comment.email
@comment.body.should == comment.content
@@ -233,7 +232,7 @@ describe WordPress::Dump, :type => :model do
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.body.should == post.content
@post.draft.should == post.draft?
@@ -242,11 +241,11 @@ describe WordPress::Dump, :type => :model do
@post.author.username.should == post.creator
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
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
end

View File

@@ -4,6 +4,7 @@ ENV["RAILS_ENV"] = "test"
require File.expand_path("../dummy/config/environment.rb", __FILE__)
require "rails/test_help"
require "rspec/rails"
require "database_cleaner"
ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true
@@ -25,4 +26,17 @@ RSpec.configure do |config|
# == Mock Framework
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