Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Rails templateで開発の
初速を上げよう
第15回 岡山Ruby,Ruby on Rails勉強会 @patorash
自己紹介
名前:尾古 豊明
twitter: @patorash
所属:株式会社リゾーム
業務内容:
新商品開発チームで新商品を開発してい
ます。
また週一度、チーム勉強会を、
月一度、チームLT会をしています。
みなさん
rails newしてますか?
久々にrails newしたら…
環境構築が辛過ぎワロエナイ…
rails newが辛すぎる…その①
Gemfileがスッカスカ
●
●
●
●
●

rspecがない
capybaraがない
テンプレートエンジンがslimじゃない
bootstrapを入れないといけない
その他使いたいgemが云々…

「...
rails newが辛すぎる…その②
gemのインストールが面倒
●
●
●
●
●
●

rails g rspec:install
rails g bootstrap:install less
rails g simple_form:ins...
rails newが辛すぎる…その③
設定ファイルがの変更が面倒
●
●
●
●
●
●
●

localeを:jaにして
timezoneをtokyoにして…
sessionをdatabaseにして…
unicornを起動できるようにして…
...
気付くともう寝ないとヤバい時間になっ
ている!
コーディングが…したいです…!
だいたい使う機能は決まってる
じゃあテンプレートプロジェクトを作っておけば
いいんじゃないか?
(rails new 直後のものを保存しとく等)

Railsのバージョンアップ時に困る
そこでrails templateを使う
rails templateとは?
● rails new でプロジェクトが作られた後に実行
されるruby scriptです。
● -m オプションでテンプレートになるスクリプト
ファイルを指定します。
rails new BigProjec...
rails templateでできること
●
●
●
●
●
●
●
●

Gemfileの書き換え
rbファイル内のコメント化と解除
bundle install実行
rakeコマンド実行
rails gコマンド実行
runメソッド経由でシェ...
多機能
is
わからない、面倒くさい
出来上がった奴、ないの?
大量にある
メジャーなやつを引っこ抜いて編集す
ればなんとかなるんじゃないか?と
思ったが…
他人のrails templateがダメな理由
● 何の為のgemかわからない。
● 意図を読まなければならない。
● 人のソースを読むのには体力が要る。

結局自分で作ったほうが速かったりするし、
後々templateのメンテナンスできるよう...
俺俺rails templateでできること
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

多すぎて
わからない
だろうから
割愛

rspecが使える
factory_girlが使える
database...
自分で作ったり、拾ってきたtemplate
を改造できるように、
私がrails templateを作る過程で
わかったTipsを披露します。
Rails templateを作るときに
気をつけるポイント
1.
2.
3.
4.
5.

1つずつのgemに対して設定していくこと
使った事のあるgemのみ対応すること
1つ対応したらgit commitすること
根気よく取り組むこと(重要...
例①:rspecを入れる
# Gemfileに追記する
gem_group :development, :test do
gem ‘rspec-rails’
end
run_bundle # bundle install
generate ‘r...
例②:simple_formを入れる
gem ‘simple_form’
run_bundle # bundle install
generate ‘simple_form:install’
例③:simple_formと
twitter-bootstrap_railsを連携する
gem ‘simple_form’
use_bootstrap = if yes?(‘Use Bootstrap?’) # ユーザーに質問する
uncom...
例④:データベースタイプ毎に
処理を分ける
# rails newの時の-dオプションで決まる。
# デフォルトだとsqlite3。
case gem_for_database
when ‘pg’
run “createuser -h loca...
例⑤:rakeを使う
rake ‘db:drop’
rake ‘db:create’
rake ‘db:migrate’
例⑥:gitを使う
git :init
git add: ‘.’
git commit: %Q{ -m ‘Initial commit’ }
※応用すると、githubやBitbucketに新しいリポジトリを作っ
てpushする事も可能。
例⑥:アプリケーション設定
application do
%Q{
config.generators do |g|
g.test_framework :rspec, fixture: true
g.assets false #他にも色々
end...
時間があればデモします。
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

Rails templateで開発の初速を上げよう

9,656 views

Published on

Rails templateを使ってプロジェクトを作るときの話。

Published in: Technology
  • Be the first to comment

Rails templateで開発の初速を上げよう

  1. 1. Rails templateで開発の 初速を上げよう 第15回 岡山Ruby,Ruby on Rails勉強会 @patorash
  2. 2. 自己紹介 名前:尾古 豊明 twitter: @patorash 所属:株式会社リゾーム 業務内容: 新商品開発チームで新商品を開発してい ます。 また週一度、チーム勉強会を、 月一度、チームLT会をしています。
  3. 3. みなさん rails newしてますか?
  4. 4. 久々にrails newしたら…
  5. 5. 環境構築が辛過ぎワロエナイ…
  6. 6. rails newが辛すぎる…その① Gemfileがスッカスカ ● ● ● ● ● rspecがない capybaraがない テンプレートエンジンがslimじゃない bootstrapを入れないといけない その他使いたいgemが云々… 「開発中のプロジェクトからGemfileパクってくればよくね?」
  7. 7. rails newが辛すぎる…その② gemのインストールが面倒 ● ● ● ● ● ● rails g rspec:install rails g bootstrap:install less rails g simple_form:install --bootstrap rails g devise:install rails g devise User あとなんだっけ…?
  8. 8. rails newが辛すぎる…その③ 設定ファイルがの変更が面倒 ● ● ● ● ● ● ● localeを:jaにして timezoneをtokyoにして… sessionをdatabaseにして… unicornを起動できるようにして… capybara_webkitが動くようにして… database_cleanerが動くようにして… あとなんだっけ…?
  9. 9. 気付くともう寝ないとヤバい時間になっ ている!
  10. 10. コーディングが…したいです…!
  11. 11. だいたい使う機能は決まってる じゃあテンプレートプロジェクトを作っておけば いいんじゃないか? (rails new 直後のものを保存しとく等) Railsのバージョンアップ時に困る
  12. 12. そこでrails templateを使う
  13. 13. rails templateとは? ● rails new でプロジェクトが作られた後に実行 されるruby scriptです。 ● -m オプションでテンプレートになるスクリプト ファイルを指定します。 rails new BigProject -m rails_template/template.rb d=postgresql
  14. 14. rails templateでできること ● ● ● ● ● ● ● ● Gemfileの書き換え rbファイル内のコメント化と解除 bundle install実行 rakeコマンド実行 rails gコマンド実行 runメソッド経由でシェル操作 gitコマンド実行 environment毎の編集 つまり多機能!
  15. 15. 多機能 is わからない、面倒くさい
  16. 16. 出来上がった奴、ないの?
  17. 17. 大量にある
  18. 18. メジャーなやつを引っこ抜いて編集す ればなんとかなるんじゃないか?と 思ったが…
  19. 19. 他人のrails templateがダメな理由 ● 何の為のgemかわからない。 ● 意図を読まなければならない。 ● 人のソースを読むのには体力が要る。 結局自分で作ったほうが速かったりするし、 後々templateのメンテナンスできるようになるので、 自分で最初から作りました。 【僕の考えた最強のrails template】 https://github.com/patorash/rails_template
  20. 20. 俺俺rails templateでできること ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 多すぎて わからない だろうから 割愛 rspecが使える factory_girlが使える database_cleanerが設定されている parallel_testsが使える テンプレートエンジンslimが使える simple_formが使える bootstrapが使える wheneverが使える active_decoratorが使える letter_openerが使える 要らないテストが自動生成されない -d=postgresqlを指定されたら、プロジェクト名のpostgresqlユーザーを作る。 データベース作成権限を与える。 unicornで動く foreman startでunicorn起動する deviseが使える devise-i18nが使える cancanが使える .gitignoreを再作成する gitで初回コミットする Bitbucketにプライベートリポジトリを作成する herokuにデプロイできる
  21. 21. 自分で作ったり、拾ってきたtemplate を改造できるように、 私がrails templateを作る過程で わかったTipsを披露します。
  22. 22. Rails templateを作るときに 気をつけるポイント 1. 2. 3. 4. 5. 1つずつのgemに対して設定していくこと 使った事のあるgemのみ対応すること 1つ対応したらgit commitすること 根気よく取り組むこと(重要) rails template用のメソッドがわからない場合 は、 methods.sort.each do |m| puts m end
  23. 23. 例①:rspecを入れる # Gemfileに追記する gem_group :development, :test do gem ‘rspec-rails’ end run_bundle # bundle install generate ‘rspec:install’ #rails g rspec:install remove_dir ‘test’ # .rspecファイルに追記する append_to_file '.rspec' do "--format documentationn--format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log" end
  24. 24. 例②:simple_formを入れる gem ‘simple_form’ run_bundle # bundle install generate ‘simple_form:install’
  25. 25. 例③:simple_formと twitter-bootstrap_railsを連携する gem ‘simple_form’ use_bootstrap = if yes?(‘Use Bootstrap?’) # ユーザーに質問する uncomment_lines ‘Gemfile’, “gem ‘therubyracer’” gem ‘less-rails’ gem ‘twitter-bootstrap-rails’ true else false end run_bundle # bundle install if use_bootstrap generate ‘bootstrap:install’, ‘less’ generate ‘simple_form:install’, ‘--bootstrap’ # bootstrap用simple_formを入れる if yes?(‘Use responsive layout?’) generate ‘bootstrap:layout’, ‘application fluid’ # レスポンシブレイアウト else generate ‘bootstrap:layout’, ‘application fixed’ # ヘッダー固定レイアウト end else generate ‘simple_form:install’ # 素のsimple_formを入れる end
  26. 26. 例④:データベースタイプ毎に 処理を分ける # rails newの時の-dオプションで決まる。 # デフォルトだとsqlite3。 case gem_for_database when ‘pg’ run “createuser -h localhost -d #{app_name}” else end
  27. 27. 例⑤:rakeを使う rake ‘db:drop’ rake ‘db:create’ rake ‘db:migrate’
  28. 28. 例⑥:gitを使う git :init git add: ‘.’ git commit: %Q{ -m ‘Initial commit’ } ※応用すると、githubやBitbucketに新しいリポジトリを作っ てpushする事も可能。
  29. 29. 例⑥:アプリケーション設定 application do %Q{ config.generators do |g| g.test_framework :rspec, fixture: true g.assets false #他にも色々 end } end # config/environments/****.rbに記述する environment ‘config.serve_static_assets = true’, env: ‘production’
  30. 30. 時間があればデモします。
  31. 31. ご清聴ありがとうございました

×