aboutsummaryrefslogtreecommitdiffstats
path: root/generators
diff options
context:
space:
mode:
authorPhilip Arndt <parndt@gmail.com>2010-08-09 21:00:30 +1200
committerPhilip Arndt <parndt@gmail.com>2010-08-09 21:00:30 +1200
commit832a0e4866cc0dd33dc6c1c4d5dc75e35152e553 (patch)
treea0bf054d0a59342db9375551bde1e862ede9b430 /generators
parente3d873855a65629af599e2611590575b6720c60c (diff)
downloadrefinerycms-blog-832a0e4866cc0dd33dc6c1c4d5dc75e35152e553.tar.gz
refinerycms-blog-832a0e4866cc0dd33dc6c1c4d5dc75e35152e553.tar.bz2
refinerycms-blog-832a0e4866cc0dd33dc6c1c4d5dc75e35152e553.zip
generate additional fields and specify relationships.
Diffstat (limited to 'generators')
-rw-r--r--generators/refinery_blog/refinery_blog_generator.rb41
-rw-r--r--generators/refinery_blog/templates/migration.rb7
2 files changed, 27 insertions, 21 deletions
diff --git a/generators/refinery_blog/refinery_blog_generator.rb b/generators/refinery_blog/refinery_blog_generator.rb
index 0739498..d18268b 100644
--- a/generators/refinery_blog/refinery_blog_generator.rb
+++ b/generators/refinery_blog/refinery_blog_generator.rb
@@ -7,37 +7,44 @@ class RefineryBlogGenerator < Rails::Generator::NamedBase
end
def banner
- "Usage: script/generate refinery_blog"
+ 'Usage: script/generate refinery_blog'
end
def manifest
- tables = %w(posts comments categories).map{|t| "blog_#{t}"}
record do |m|
m.template('seed.rb', 'db/seeds/refinerycms_blog.rb')
m.migration_template('migration.rb', 'db/migrate',
- :migration_file_name => "create_blog_structure",
+ :migration_file_name => 'create_blog_structure',
:assigns => {
- :migration_name => "CreateBlogStructure",
+ :migration_name => 'CreateBlogStructure',
:tables => [{
- :table_name => tables.first,
+ :table_name => 'blog_posts',
:attributes => [
- Rails::Generator::GeneratedAttribute.new("title", "string"),
- Rails::Generator::GeneratedAttribute.new("body", "text"),
- Rails::Generator::GeneratedAttribute.new("draft", "boolean")
- ]
+ Rails::Generator::GeneratedAttribute.new('title', 'string'),
+ Rails::Generator::GeneratedAttribute.new('body', 'text'),
+ Rails::Generator::GeneratedAttribute.new('draft', 'boolean')
+ ], :id => true
},{
- :table_name => tables.second,
+ :table_name => 'blog_comments',
:attributes => [
- Rails::Generator::GeneratedAttribute.new("name", "string"),
- Rails::Generator::GeneratedAttribute.new("email", "string"),
- Rails::Generator::GeneratedAttribute.new("body", "text")
- ]
+ Rails::Generator::GeneratedAttribute.new('name', 'string'),
+ Rails::Generator::GeneratedAttribute.new('email', 'string'),
+ Rails::Generator::GeneratedAttribute.new('body', 'text'),
+ Rails::Generator::GeneratedAttribute.new('approved', 'boolean'),
+ Rails::Generator::GeneratedAttribute.new('blog_post_id', 'integer')
+ ], :id => true
},{
- :table_name => tables.third,
+ :table_name => 'blog_categories',
:attributes => [
- Rails::Generator::GeneratedAttribute.new("title", "string")
- ]
+ Rails::Generator::GeneratedAttribute.new('title', 'string')
+ ], :id => true
+ },{
+ :table_name => 'blog_categories_blog_posts',
+ :attributes => [
+ Rails::Generator::GeneratedAttribute.new('blog_category_id', 'integer'),
+ Rails::Generator::GeneratedAttribute.new('blog_post_id', 'integer')
+ ], :id => false
}]
})
end
diff --git a/generators/refinery_blog/templates/migration.rb b/generators/refinery_blog/templates/migration.rb
index 2ebd06e..5ba29c6 100644
--- a/generators/refinery_blog/templates/migration.rb
+++ b/generators/refinery_blog/templates/migration.rb
@@ -1,16 +1,15 @@
class <%= migration_name %> < ActiveRecord::Migration
def self.up<% tables.each do |table| %>
- create_table :<%= table[:table_name] %> do |t|
+ 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
+ <%= 't.timestamps' if table[:id] %>
end
- add_index :<%= table[:table_name] %>, :id
+ <%= "add_index :#{table[:table_name]}, :id" if table[:id] %>
<% end -%>
-
load(Rails.root.join('db', 'seeds', 'refinerycms_blog.rb').to_s)
end