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