Ruby
Rails
Web
Webサービス
Rails5

新規サービス用のRailsの雛形を作って見た

はじめに

毎回 rails new して初期設定するのが面倒なので、すぐ開発始められるようにプリセットを作ってみます。

採用技術

  • Rails
  • Ruby
  • Yarn
  • PostgreSQL

いざ実践

ruby最新バージョンを設定する

安定版の最新が2.5.3なのでそれをインストールしていきます。

Homebrewをアップデート

$ brew update
Updated 1 tap (homebrew/core).
==> Updated Formulae

ruby-buildをアップデート

$ brew upgrade ruby-build
Updating Homebrew...
==> Upgrading 1 outdated package:
ruby-build 20180224 -> 20181019
==> Upgrading ruby-build 
==> Downloading https://github.com/rbenv/ruby-build/archive/v20181019.tar.gz
==> Downloading from https://codeload.github.com/rbenv/ruby-build/tar.gz/v20181019
######################################################################## 100.0%
==> ./install.sh
🍺  /usr/local/Cellar/ruby-build/20181019: 417 files, 210.8KB, built in 13 seconds

2.5.3をインストール

$ rbenv install 2.5.3
ruby-build: use openssl from homebrew
Downloading ruby-2.5.3.tar.bz2...

使用するバージョンを2.5.3に指定

$ rbenv global 2.5.3
$ ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17]

最新のrailsをインストール

最新が5.2.1なのでそれをインストールしていきます。

rails をインストール

$ gem install rails
$ rails -v
Rails 5.2.1

bundler をインストール

$ gem install bundler
Successfully installed bundler-1.17.1
Parsing documentation for bundler-1.17.1
Done installing documentation for bundler after 2 seconds
1 gem installed

rails の雛形を作る

rails new

DBはpostgresql、テストユニットはスキップします。

$ rails new rails_preset -d postgresql -T

日本語化

config/application.rb

config.i18n.default_locale = :ja

日本語の言語ファイルを作成します

$ curl -s https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -o config/locales/ja.yml

タイムゾーンの設定

config/application.rb

config.time_zone = 'Tokyo'

rails generate時の生成ファイルの設定

css js helper ファイルを生成しないようにします。

config.generators do |g|
  g.assets false
  g.javascripts false
  g.helper false
  g.test_framework false
end

Rspecインストール

関連gemを追加

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'rspec-rails', '~> 3.8'
  gem 'factory_bot_rails'
end

group :test do
  gem 'capybara'
  gem 'database_cleaner'
end

rspecの設定コマンド

$ rails generate rspec:install

database_cleanerの設定

以下の行のコメントアウトを外す

Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }

spec/support/database_cleaner.rb

RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do
    DatabaseCleaner.strategy = :transaction
  end

  config.before(:each, js: true) do
    DatabaseCleaner.strategy = :truncation
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.append_after(:each) do
    DatabaseCleaner.clean
  end
end

factory botの設定

spec/support/factory_bot.rb

RSpec.configure do |config|
  config.include FactoryBot::Syntax::Methods
end

slimをインストール

Gemfile

gem 'slim-rails'

config/application.rb

config.generators.template_engine = :slim

既存のerbファイルをslimに変換

$ gem install html2slim
$ erb2slim app/views/ app/views/ -d

開発ツールをインストール

gem 'annotate'
gem 'better_errors'
gem 'binding_of_caller'
gem 'bullet'
gem 'hirb'
gem 'hirb-unicode'
gem 'letter_opener_web'
gem 'pry-rails'
gem 'pry-byebug'

ソースコード

ソースはこちらにあげてます

https://github.com/stivan622/rails_preset