rails コマンドにこんな便利機能があったなんて…っ!
Rails アプリを新規作成するとき、決まって次の作業をやっている。
さすがに上記の作業を毎回やるのは面倒なので、RailsAdmin のインストールまでが終わったモックアプリを用意して使い回しているけど、それでもアプリ名をリーネームするの大変。Application Template 機能を使えば完全に自動化できそうだ。
さっそくやってみた。
@after_bundler = [] def after_bundler(&block) @after_bundler << block end gem 'rails-i18n' gem 'better_errors', group: :development gem 'binding_of_caller', group: :development gem 'annotate', group: :development gem 'rspec-rails', group: [:development, :test] after_bundler do generate "rspec:install" end gem 'capybara', group: [:development, :test] after_bundler do inject_into_file "spec/spec_helper.rb", :before => "require 'rspec/autorun'" do "require 'capybara/rails'\n" end end gem 'factory_girl_rails', group: [:development, :test] gem 'debugger', group: [:development, :test] gem 'konacha', group: [:development, :test] gem 'awesome_print', group: [:development, :test] gem 'simplecov', require: false, group: :test gem 'simplecov-rcov', require: false, group: :test gem 'webmock', group: :test after_bundler do inject_into_file "spec/spec_helper.rb", :before => "require 'rspec/autorun'" do "require 'webmock/rspec'\n" end end gem 'devise' after_bundler do generate "devise:install" generate "devise User" generate "devise:views" rake "db:migrate" end gem 'rails_admin' after_bundler do generate "devise Admin" rake "db:migrate" generate "rails_admin:install", "admin rails_admin" rake "db:migrate" end gem 'bootstrap-sass' gem 'font-awesome-sass-rails' after_bundler do inject_into_file "app/assets/stylesheets/application.css", :before => " *= require_self" do " *= require bootstrap\n" end inject_into_file "app/assets/stylesheets/application.css", :after => " *= require_self" do "\n *= require bootstrap-responsive\n *= require _font-awesome" end inject_into_file "app/assets/javascripts/application.js", :before => "//= require_tree ." do "//= require bootstrap\n" end end run "budle install" @after_bundler.each do |h| h.call end # commit to git git :init git :add => "." git :commit => '-m "create initial application"'
RailsAdmin が無事動くことを確認したら、ちょっと興奮してしまった。
Rails アプリ新規作成時の刺身タンポポ作業を自動化できて超便利なのに、家にある唯一の Rails 本『Rails3 レシピブック』には載ってなくて残念。半年は早く知りたかったよ、セニョール。