大江戸r uby会 議 - rabbit slide show · 2020. 3. 24. · 大江戸r uby会 議 04 1年...
TRANSCRIPT
![Page 1: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/1.jpg)
大江戸Ruby会議04
1年かけて1つのgemを作りました
伊藤 邦彦永和システムマネジメント
![Page 2: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/2.jpg)
はじめに
発表する機会をいただきありがとうございます
![Page 3: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/3.jpg)
自己紹介
Kunihiko Ito
@kunitoo
Asakusa.rb歴: 約1年半
rgitlog を作ってます
![Page 4: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/4.jpg)
今日話すこと
Asakusa.rb でやっていること
作ったgemのこと
![Page 5: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/5.jpg)
Asakusa.rb でやっていること
上野会場のドアを開けたり
他の人の話を聞いたり
写経したり
gem を作ったり
![Page 6: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/6.jpg)
上野で会場のドアを開けたり
ドア番をお願いされたのが Meet up に参加するきっかけ
![Page 7: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/7.jpg)
他の人の話を聞いたり
会話の単語が分からない
調べながら会話を聞く
少しずつ慣れて話が分かるようになった
![Page 8: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/8.jpg)
写経したり
Rails Tutorial
Rails Guides
RubyGems Guides
![Page 9: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/9.jpg)
gem を作ったり
自己紹介するときに話せる代表作がほしい
なにを作るか考えるところから始めた
![Page 10: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/10.jpg)
作ったgem
![Page 11: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/11.jpg)
rgitlog
rails アプリの git log をブラウザで見ることができます
![Page 12: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/12.jpg)
Insatall
以下を変更するだけGemfile
config/routes.rb
![Page 13: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/13.jpg)
Gemfile
gem 'rgitlog'
次に
% bundle
![Page 14: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/14.jpg)
config/routes.rb
mount Rgitlog::Engine, at: '/rgitlog'
![Page 15: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/15.jpg)
Usage
![Page 16: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/16.jpg)
rgitlogができるまで
やりたいこと探し
gitを扱うライブラリ探し
![Page 17: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/17.jpg)
rgitlogができるまで
やりたいこと探し
gitを扱うライブラリ探し
![Page 18: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/18.jpg)
やりたいこと
開発中に以前のバージョンの見た目が気になることがあった
動作確認中はブラウザだけで完結したい
git checkout したくない
![Page 19: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/19.jpg)
これからやりたいこと
ブランチを選択して checkout したい
diff を見れるようにしたい
見た目をかっこよくしたい
![Page 20: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/20.jpg)
rgitlogができるまで
やりたいこと探し
gitを扱うライブラリ探し
![Page 21: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/21.jpg)
最初のバージョン
mojombo/grit
mojombo/grit はRuby 2.0で動かなかった
gitlabhq/grit フォークを使用
![Page 22: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/22.jpg)
grit での git log 取得
Repo.new('path/to/my/repository').commits
![Page 23: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/23.jpg)
watchしていたらある日
“Grit is no longer maintained. Check out rugged”
Pull Request が 118 close された
![Page 24: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/24.jpg)
rugged での git log 取得
Rugged::Repository.new('path/to/my/repository').head.log
![Page 25: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/25.jpg)
rugged での git log 取得
Rugged::Repository.new('path/to/my/repository').head.log
reflog 取得されます
![Page 26: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/26.jpg)
正解
repo = Rugged::Repository.new('path/to/my/repository')repo.walk(repo.last_commit)
気付くのに数ヶ月かかりましたorz
![Page 27: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/27.jpg)
rgitlog リリースまで
作りたいと思ってから約1年
実はとっても簡単に作れます
![Page 28: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/28.jpg)
rgitlogの作り方
今から作ります!
時間ありますよね?
![Page 29: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/29.jpg)
rails plugin new
$ rails plugin new rgitlog --mountable -O -B$ cd rgitlog$ bundle --local
![Page 30: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/30.jpg)
Add ruggedrgitlog.gemspec
s.add_dependency "rugged"
![Page 31: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/31.jpg)
generate controller
$ rails g controller rgitlog index
![Page 32: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/32.jpg)
Controller
require_dependency "rgitlog/application_controller"require 'rugged'
module Rgitlog class RgitlogController < ApplicationController def index path = Rugged::Repository.discover(Dir.pwd) repo = Rugged::Repository.new(path) @commits = repo.walk(repo.last_commit).to_a end endend
![Page 33: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/33.jpg)
View
<h1>commits</h1><ul> <% @commits.each do |commit| %> <li><%= commit.message %></li> <% end %></ul>
![Page 34: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/34.jpg)
Routes
root to: 'rgitlog#index'
![Page 35: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/35.jpg)
完成
慣れると10分くらいで作れるようになる
![Page 36: 大江戸R uby会 議 - Rabbit Slide Show · 2020. 3. 24. · 大江戸R uby会 議 04 1年 かけて1つ のg emを 作りました 伊藤 邦彦 永和システムマネジメント](https://reader036.vdocuments.mx/reader036/viewer/2022063017/5fd7e8e02f5faf66d7049572/html5/thumbnails/36.jpg)
まとめ
Asakusa.rbに通いこつこつと続けていれば、1年かかったことが20分でできるようになります