aboutsummaryrefslogtreecommitdiffstats
path: root/lib/generators
diff options
context:
space:
mode:
authorPhilip Arndt <parndt@gmail.com>2011-03-04 11:54:12 +1300
committerPhilip Arndt <parndt@gmail.com>2011-03-04 11:54:12 +1300
commit234a7d74d57084a78e51cc52861a81f7d0748a6d (patch)
tree6552dfac3f45057f4f617573df26f2af0687e71e /lib/generators
parent1e6190b58c66fda23b6666e46f2a65198841a06f (diff)
downloadrefinerycms-blog-234a7d74d57084a78e51cc52861a81f7d0748a6d.tar.gz
refinerycms-blog-234a7d74d57084a78e51cc52861a81f7d0748a6d.tar.bz2
refinerycms-blog-234a7d74d57084a78e51cc52861a81f7d0748a6d.zip
Moved most of the code toward EngineInstaller.
Diffstat (limited to 'lib/generators')
-rw-r--r--lib/generators/refinerycms_blog/templates/db/migrate/migration_number_add_user_id_to_blog_posts.rb11
-rw-r--r--lib/generators/refinerycms_blog/templates/db/migrate/migration_number_create_singular_name.rb26
-rw-r--r--lib/generators/refinerycms_blog/templates/db/seeds/seed.rb16
-rw-r--r--lib/generators/refinerycms_blog_generator.rb88
4 files changed, 5 insertions, 136 deletions
diff --git a/lib/generators/refinerycms_blog/templates/db/migrate/migration_number_add_user_id_to_blog_posts.rb b/lib/generators/refinerycms_blog/templates/db/migrate/migration_number_add_user_id_to_blog_posts.rb
deleted file mode 100644
index cd62524..0000000
--- a/lib/generators/refinerycms_blog/templates/db/migrate/migration_number_add_user_id_to_blog_posts.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-class AddUserIdToBlogPosts < ActiveRecord::Migration
-
- def self.up
- add_column :blog_posts, :user_id, :integer
- end
-
- def self.down
- remove_column :blog_posts, :user_id
- end
-
-end \ No newline at end of file
diff --git a/lib/generators/refinerycms_blog/templates/db/migrate/migration_number_create_singular_name.rb b/lib/generators/refinerycms_blog/templates/db/migrate/migration_number_create_singular_name.rb
deleted file mode 100644
index badb213..0000000
--- a/lib/generators/refinerycms_blog/templates/db/migrate/migration_number_create_singular_name.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-class Create<%= singular_name.camelize %> < ActiveRecord::Migration
-
- def self.up<% @refinerycms_blog_tables.each do |table| %>
- create_table :<%= table[:table_name] %>, :id => <%= table[:id].to_s %> do |t|
-<% table[:attributes].each do |attribute| -%>
- t.<%= attribute.type %> :<%= attribute.name %>
-<% end -%>
- <%= 't.timestamps' if table[:id] %>
- end
-
- <%= "add_index :#{table[:table_name]}, :id" if table[:id] %>
-<% end -%>
- load(Rails.root.join('db', 'seeds', 'refinerycms_blog.rb').to_s)
- end
-
- def self.down
- UserPlugin.destroy_all({:name => "refinerycms_blog"})
-
- Page.delete_all({:link_url => "/blog"})
-
-<% @refinerycms_blog_tables.each do |table| -%>
- drop_table :<%= table[:table_name] %>
-<% end -%>
- end
-
-end
diff --git a/lib/generators/refinerycms_blog/templates/db/seeds/seed.rb b/lib/generators/refinerycms_blog/templates/db/seeds/seed.rb
deleted file mode 100644
index f958fab..0000000
--- a/lib/generators/refinerycms_blog/templates/db/seeds/seed.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-User.find(:all).each do |user|
- user.plugins.create(:name => "refinerycms_blog",
- :position => (user.plugins.maximum(:position) || -1) +1)
-end
-
-page = Page.create(
- :title => "Blog",
- :link_url => "/blog",
- :deletable => false,
- :position => ((Page.maximum(:position, :conditions => {:parent_id => nil}) || -1)+1),
- :menu_match => "^/blogs?(\/|\/.+?|)$"
-)
-
-Page.default_parts.each do |default_page_part|
- page.parts.create(:title => default_page_part, :body => nil)
-end
diff --git a/lib/generators/refinerycms_blog_generator.rb b/lib/generators/refinerycms_blog_generator.rb
index 86c96ec..3f3d35a 100644
--- a/lib/generators/refinerycms_blog_generator.rb
+++ b/lib/generators/refinerycms_blog_generator.rb
@@ -1,87 +1,9 @@
-require 'rails/generators/migration'
+require 'refinery/generators'
-class RefinerycmsBlogGenerator < Rails::Generators::NamedBase
- include Rails::Generators::Migration
+class RefinerycmsBlogGenerator < ::Refinery::Generators::EngineInstaller
- source_root File.expand_path('../refinerycms_blog/templates/', __FILE__)
+ source_root File.expand_path('../../../', __FILE__)
argument :name, :type => :string, :default => 'blog_structure', :banner => ''
+ engine_name "refinerycms-blog"
- def generate
- # seed file
- template 'db/seeds/seed.rb', Rails.root.join('db/seeds/refinerycms_blog.rb')
-
- # migration file
- @refinerycms_blog_tables = [{
- :table_name => 'blog_posts',
- :attributes => [
- Rails::Generators::GeneratedAttribute.new('title', 'string'),
- Rails::Generators::GeneratedAttribute.new('body', 'text'),
- Rails::Generators::GeneratedAttribute.new('draft', 'boolean'),
- Rails::Generators::GeneratedAttribute.new('published_at', 'datetime')
- ], :id => true
- },{
- :table_name => 'blog_comments',
- :attributes => [
- Rails::Generators::GeneratedAttribute.new('blog_post_id', 'integer'),
- Rails::Generators::GeneratedAttribute.new('spam', 'boolean'),
- Rails::Generators::GeneratedAttribute.new('name', 'string'),
- Rails::Generators::GeneratedAttribute.new('email', 'string'),
- Rails::Generators::GeneratedAttribute.new('body', 'text'),
- Rails::Generators::GeneratedAttribute.new('state', 'string'),
- ], :id => true
- },{
- :table_name => 'blog_categories',
- :attributes => [
- Rails::Generators::GeneratedAttribute.new('title', 'string')
- ], :id => true
- },{
- :table_name => 'blog_categories_blog_posts',
- :attributes => [
- Rails::Generators::GeneratedAttribute.new('blog_category_id', 'integer'),
- Rails::Generators::GeneratedAttribute.new('blog_post_id', 'integer')
- ], :id => false
- }]
- unless Pathname.glob(Rails.root.join('db', 'migrate', "*_create_#{singular_name}.rb")).any?
- next_migration_number = ActiveRecord::Generators::Base.next_migration_number(File.dirname(__FILE__))
- template('db/migrate/migration_number_create_singular_name.rb',
- Rails.root.join("db/migrate/#{next_migration_number}_create_#{singular_name}.rb"))
- end
- unless Pathname.glob(Rails.root.join('db', 'migrate', "*_add_user_id_to_blog_posts.rb")).any?
- next_migration_number = ActiveRecord::Generators::Base.next_migration_number(File.dirname(__FILE__))
- template('db/migrate/migration_number_add_user_id_to_blog_posts.rb',
- Rails.root.join('db', 'migrate', "#{next_migration_number}_add_user_id_to_blog_posts.rb"))
- end
-
- puts "------------------------"
- puts "Now run:"
- puts "rake db:migrate"
- puts "------------------------"
- end
-end
-
-# Below is a hack until this issue:
-# https://rails.lighthouseapp.com/projects/8994/tickets/3820-make-railsgeneratorsmigrationnext_migration_number-method-a-class-method-so-it-possible-to-use-it-in-custom-generators
-# is fixed on the Rails project.
-
-require 'rails/generators/named_base'
-require 'rails/generators/migration'
-require 'rails/generators/active_model'
-require 'active_record'
-
-module ActiveRecord
- module Generators
- class Base < Rails::Generators::NamedBase #:nodoc:
- include Rails::Generators::Migration
-
- # Implement the required interface for Rails::Generators::Migration.
- def self.next_migration_number(dirname) #:nodoc:
- next_migration_number = current_migration_number(dirname) + 1
- if ActiveRecord::Base.timestamped_migrations
- [Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
- else
- "%.3d" % next_migration_number
- end
- end
- end
- end
-end
+end \ No newline at end of file