SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Rails Application Template
Hamamatsu.rb
@jacoyutorius
Hamamatsu.rb 1
yuto ogi
4 @jacoyutorius
4 ruby, javascript
4 Hamamatsu.rb, JAWS-UG
Hamamatsu
4 FOURIER.Inc
Hamamatsu.rb 2
Application Template
4 Railsの初期設定を定義するDSL
4 rails new時に実行
Hamamatsu.rb 3
sample
template.rb
gem "date_validator"
gem "email_validator"
Hamamatsu.rb 4
sample
rails new testapp -m ./template.rb
=> datevalidatorとemailvalidatorがGemfileに追記された
状態で作成される
Hamamatsu.rb 5
できること
4 Gemfileの追記
4 bundle install後に実行する処理の定義
4 rails generateの実行
4 shellコマンドの実行
4 rakeタスクの実行
4 routingの定義
Hamamatsu.rb 6
解決できた課題
4 よく使う開発用gemを忘れる
4 bundleしたgemの初期化コマンドを忘れる
4 "rspec:install" とか "bundle binstubs rspec-core"
4 タイムゾーンの設定を忘れる
4 config.generators.test_frameworkの設定を忘れる
Hamamatsu.rb 7
template.rb
gem_group :development, :test do
gem "better_errors"
gem "binding_of_caller"
gem "pry-byebug"
gem "pry-doc"
gem "bullet"
gem "awesome_print"
gem "yard"
gem "letter_opener"
gem "letter_opener_web"
gem "hirb"
gem "hirb-unicode"
gem "rubocop"
gem "rubocop-rspec"
end
Hamamatsu.rb 8
template.rb
environment <<-EOF
config.generators do |g|
g.orm :active_record
g.helper false
g.assets false
g.test_framework :rspec
g.controller_specs true
g.helper_specs true
g.view_specs false
g.fixture_replacement :factory_girl, dir: "spec/support/factories"
end
EOF
Hamamatsu.rb 9
template.rb
environment <<-EOF
config.time_zone = "Tokyo"
config.i18n.load_path += Dir[Rails.root.join("config",
"locales", "**", "*.{rb, yml}").to_s]
config.i18n.default_locale = :ja
EOF
Hamamatsu.rb 10
template.rb
after_bundle do
run("bundle install --path .bundle --jobs=4")
# initialize rspec
run("bin/rails generate rspec:install")
run("bin/bundle binstubs rspec-core")
# run rubocop
run("bin/bundle exec rubocop --auto-correct --auto-gen-config")
# run spec
run("bin/rspec")
end
Hamamatsu.rb 11
実行
rails new testapp -m ./template.rb --skip-bundle --skip-test
Hamamatsu.rb 12
その他
4 environmentでコードを書き込むとインデントが少し崩れ
るので、
"rubocop --auto-correct"で整形している
Hamamatsu.rb 13
まとめ
4 rails composerというのもある
4 railscomposer.com
Hamamatsu.rb 14
4 Railsガイド
4 https://gist.github.com/jacoyutorius/
287be5b7a99825ed89c1a054e0aca872
Hamamatsu.rb 15

Weitere ähnliche Inhalte

Was ist angesagt?

Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話Yasufumi Moritake
 
Rubyでバルクインサート
RubyでバルクインサートRubyでバルクインサート
RubyでバルクインサートFujimura Munehiko
 
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingGosuke Miyashita
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2学 松崎
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストKen Sawada
 
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Iwana Chan
 
Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15mashan94
 
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Ransui Iso
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング勲 國府田
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
Clojureによるログ収集と解析
Clojureによるログ収集と解析Clojureによるログ収集と解析
Clojureによるログ収集と解析Yoshitaka Kawashima
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニングii012014
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門 Atsu Yamaga
 
Serverspecの活用tips紹介
Serverspecの活用tips紹介Serverspecの活用tips紹介
Serverspecの活用tips紹介Daisuke Ikeda
 
Solr 4.0 の主な機能
Solr 4.0 の主な機能Solr 4.0 の主な機能
Solr 4.0 の主な機能Shinichiro Abe
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
MySQL/Ruby終了のお知らせ
MySQL/Ruby終了のお知らせMySQL/Ruby終了のお知らせ
MySQL/Ruby終了のお知らせMasahiro Tomita
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイtoyoshi
 

Was ist angesagt? (20)

Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話
 
Rubyでバルクインサート
RubyでバルクインサートRubyでバルクインサート
Rubyでバルクインサート
 
Serverspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
 
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
 
Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15
 
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
Clojureによるログ収集と解析
Clojureによるログ収集と解析Clojureによるログ収集と解析
Clojureによるログ収集と解析
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニング
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
 
Serverspecの活用tips紹介
Serverspecの活用tips紹介Serverspecの活用tips紹介
Serverspecの活用tips紹介
 
Solr 4.0 の主な機能
Solr 4.0 の主な機能Solr 4.0 の主な機能
Solr 4.0 の主な機能
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
nginx入門
nginx入門nginx入門
nginx入門
 
MySQL/Ruby終了のお知らせ
MySQL/Ruby終了のお知らせMySQL/Ruby終了のお知らせ
MySQL/Ruby終了のお知らせ
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイ
 

Ähnlich wie Rails application template

Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編Fumihiro Kato
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler についてTomoya Kawanishi
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Yohei Yasukawa
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 

Ähnlich wie Rails application template (7)

Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編
 
RubyGemsの落とし穴
RubyGemsの落とし穴RubyGemsの落とし穴
RubyGemsの落とし穴
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler について
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 

Mehr von Yuto Ogi

Ruby with AWS DynamoDB
Ruby with AWS DynamoDBRuby with AWS DynamoDB
Ruby with AWS DynamoDBYuto Ogi
 
s3_website
s3_websites3_website
s3_websiteYuto Ogi
 
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方Yuto Ogi
 
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioningitamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioningYuto Ogi
 
浜松Ruby会議01
浜松Ruby会議01浜松Ruby会議01
浜松Ruby会議01Yuto Ogi
 
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作ったDMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作ったYuto Ogi
 
Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津Yuto Ogi
 
Hamamatsurb#30
Hamamatsurb#30Hamamatsurb#30
Hamamatsurb#30Yuto Ogi
 
Introducing aws ruby sdk
Introducing aws ruby sdkIntroducing aws ruby sdk
Introducing aws ruby sdkYuto Ogi
 
20130310 jaws tokai2013
20130310 jaws tokai201320130310 jaws tokai2013
20130310 jaws tokai2013Yuto Ogi
 
20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部Yuto Ogi
 
リーダブルコード 第二章
リーダブルコード 第二章リーダブルコード 第二章
リーダブルコード 第二章Yuto Ogi
 

Mehr von Yuto Ogi (12)

Ruby with AWS DynamoDB
Ruby with AWS DynamoDBRuby with AWS DynamoDB
Ruby with AWS DynamoDB
 
s3_website
s3_websites3_website
s3_website
 
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
 
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioningitamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
 
浜松Ruby会議01
浜松Ruby会議01浜松Ruby会議01
浜松Ruby会議01
 
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作ったDMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った
 
Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津
 
Hamamatsurb#30
Hamamatsurb#30Hamamatsurb#30
Hamamatsurb#30
 
Introducing aws ruby sdk
Introducing aws ruby sdkIntroducing aws ruby sdk
Introducing aws ruby sdk
 
20130310 jaws tokai2013
20130310 jaws tokai201320130310 jaws tokai2013
20130310 jaws tokai2013
 
20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部
 
リーダブルコード 第二章
リーダブルコード 第二章リーダブルコード 第二章
リーダブルコード 第二章
 

Rails application template