Repository URL to install this package:
Version:
0.3.5 ▾
|
module NeotericBlog
class InstallGenerator < Rails::Generators::Base
desc "Installs Neoteric Blog and generates the necessary migrations"
include Rails::Generators::Migration
def self.source_root
@_neoteric_blog_source_root ||= File.expand_path("../templates", __FILE__)
end
def self.next_migration_number(dirname)
Time.now.strftime("%Y%m%d%H%M%S")
end
def copy_templates
copy_file "show.html.erb", "app/views/blog_posts/show.html.erb"
copy_file "index.html.erb", "app/views/blog_posts/index.html.erb"
copy_file "index.rss.builder", "app/views/blog_posts/index.rss.builder"
copy_file "_header.html.erb", "app/views/blog_posts/_header.html.erb"
copy_file "_sidebar.html.erb", "app/views/blog_posts/_sidebar.html.erb"
end
def copy_classes
copy_file "blog_posts_controller.rb", "app/controllers/blog_posts_controller.rb"
copy_file "blog_post.rb", "app/models/blog_post.rb"
end
def setup_routes
route <<-ROUTES
resources :blog_posts, :path => '/blog', :only => [:index, :show] do
collection do
get 'tagged/:tag', :to => 'blog_posts#tagged', :as => 'tagged'
get ':year/:month', :to => 'blog_posts#archive', :as => 'archive'
end
end
ROUTES
end
def create_migrations
Dir["#{self.class.source_root}/migrations/*.rb"].sort.each do |filepath|
name = File.basename(filepath)
migration_template "migrations/#{name}", "db/migrate/#{name.gsub(/^\d+_/,'')}"
sleep 1
end
generate("acts_as_taggable_on:migration")
generate("neoteric_blog:upgrade")
rake("db:migrate db:test:prepare")
end
end
end