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

8,620 views

Published on

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

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,620
On SlideShare
0
From Embeds
0
Number of Embeds
5,068
Actions
Shares
0
Downloads
14
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

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. ご清聴ありがとうございました

×