SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Crystalにプルリクテロ
github/tbrand
自己紹介
鈴木 太一郎
青葉というラーメンが大好きすぎて週一以上で通う
研究 C, CUDA
業務 Ruby, Java, Swift
趣味 Crystal, Ruby, Android
私情によりここは非公開とさせてくださいませm(_ _)m
発表内容
「結構痛めの日本人がめっちゃプルリク出してくるよ」
プルリク1
Crystalを知った次の日に出したプルリク
CrystalってRubyとの互換があるらしい
=> RubyにあってCrystalにないもの実装したらいいでは
=> Array#nitemsを実装(crystal/pull/3501)
=> そういうことじゃねぇと弾かれる
プルリク2
Crystalをいろいろ試していた時に気付いてプルリク
URI.escapeの挙動がRubyと致命的に違う
=> Rubyの方の挙動をする関数を追加(crystal/pull/3515)
=> 無視
プルリク3
Crystalで個人的に不便に感じたためプルリク
`crystal build`がコードを指定しないと動かない
=> プロジェクトのルートではコードを指定しなくても動けばいいのに
=> `crystal init`でshard.yml作るし
=> 実装(crystal/pull/3538)
=> 「shardsで実装してくんない?」
プルリク4
プルリク3をshardsに出す
言われたように`shards build`を実装(shards/pull/136)
=> 紆余曲折
=> マージ!
最近のプルリク
• `crystal init`で作成される.gitignoreに/bin/を追加
• crystal/pull/3596
• => マージ!
• crystal-mysqlのMemoryIOをIO::Memoryに
• crystal-mysql/pull/13
• => マージ!
まとめ
• これからも痛い日本人代表でプルリクを出していきたいです。
完
宣伝
Topazというライブラリを開発中
github: tbrand/topaz
シンプルなDBラッパー(crystal-mysqlをサポート)
Version 0.0.2をリリース!
awesome-crystal にも追加していただきました
モデルの定義
class SampleModel < Topaz::Model
columns(
{name: name, type: String},
{name: age, type: Int32},
{name: score, type: Float64}
)
end
テーブルの作成・削除
SampleModel.create_table
データの作成・削除・検索・更新
SampleModel#create,delete,update,select
SampleModel.where(“age = 25”).order(“score”).range(0, 10).select
モデルの関連付け
has, belongs など
dependencies:
topaz:
github: tbrand/topaz
インストール

Weitere ähnliche Inhalte

Was ist angesagt?

Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト三七男 山本
 
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介Yuya Taki
 
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて   第16回 岡山ruby, ruby on rails勉強会Mrubyについて   第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会Masaya Konishi
 
Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Masaya Konishi
 
とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料ionis111
 
Begin cucumber-in-real-world
Begin cucumber-in-real-worldBegin cucumber-in-real-world
Begin cucumber-in-real-worldKyosuke MOROHASHI
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストKanako Kobayashi
 
JRuby on Rails on JBoss
JRuby on Rails on JBossJRuby on Rails on JBoss
JRuby on Rails on JBossbose999
 
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話ssuserfb543d1
 
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」Tsutomu Chikuba
 
KPTは2回目が大切なのに…
KPTは2回目が大切なのに…KPTは2回目が大切なのに…
KPTは2回目が大切なのに…Mineo Matsuya
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And JekyllYoji Shidara
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方三七男 山本
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方Shuyo Nakatani
 
Rubykaigi2018共有会
Rubykaigi2018共有会Rubykaigi2018共有会
Rubykaigi2018共有会ogawatti
 
Ruby 風シンタックスな静的言語 Crystal の紹介
Ruby 風シンタックスな静的言語 Crystal の紹介Ruby 風シンタックスな静的言語 Crystal の紹介
Ruby 風シンタックスな静的言語 Crystal の紹介Kazuki Matsushita
 

Was ist angesagt? (20)

Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト
 
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
 
Scala.js
Scala.jsScala.js
Scala.js
 
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて   第16回 岡山ruby, ruby on rails勉強会Mrubyについて   第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
 
ぎっとの「ぎ」
ぎっとの「ぎ」ぎっとの「ぎ」
ぎっとの「ぎ」
 
Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話
 
とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料
 
Begin cucumber-in-real-world
Begin cucumber-in-real-worldBegin cucumber-in-real-world
Begin cucumber-in-real-world
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
 
JRuby on Rails on JBoss
JRuby on Rails on JBossJRuby on Rails on JBoss
JRuby on Rails on JBoss
 
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
 
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
KPTは2回目が大切なのに…
KPTは2回目が大切なのに…KPTは2回目が大切なのに…
KPTは2回目が大切なのに…
 
GR-CITRUSの紹介
GR-CITRUSの紹介GR-CITRUSの紹介
GR-CITRUSの紹介
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
 
Rubykaigi2018共有会
Rubykaigi2018共有会Rubykaigi2018共有会
Rubykaigi2018共有会
 
Ruby 風シンタックスな静的言語 Crystal の紹介
Ruby 風シンタックスな静的言語 Crystal の紹介Ruby 風シンタックスな静的言語 Crystal の紹介
Ruby 風シンタックスな静的言語 Crystal の紹介
 

Andere mochten auch

Rubyの拡張をCrystalで書いてみる
Rubyの拡張をCrystalで書いてみるRubyの拡張をCrystalで書いてみる
Rubyの拡張をCrystalで書いてみる5t111111
 
CrystalでもRailsを使いたいですか?
CrystalでもRailsを使いたいですか?CrystalでもRailsを使いたいですか?
CrystalでもRailsを使いたいですか?Masayuki Uchida
 
Crystalを触り始めてから起こったこと
Crystalを触り始めてから起こったことCrystalを触り始めてから起こったこと
Crystalを触り始めてから起こったことat grandpa
 
静的型付け言語 Crystal
静的型付け言語 Crystal静的型付け言語 Crystal
静的型付け言語 Crystal5t111111
 
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクションat grandpa
 
Crystal学習の際に印象に残った点
Crystal学習の際に印象に残った点Crystal学習の際に印象に残った点
Crystal学習の際に印象に残った点stefafafan
 
テストエンジニアと組織構造 @Cybozu
テストエンジニアと組織構造 @Cybozuテストエンジニアと組織構造 @Cybozu
テストエンジニアと組織構造 @CybozuJumpei Miyata
 

Andere mochten auch (7)

Rubyの拡張をCrystalで書いてみる
Rubyの拡張をCrystalで書いてみるRubyの拡張をCrystalで書いてみる
Rubyの拡張をCrystalで書いてみる
 
CrystalでもRailsを使いたいですか?
CrystalでもRailsを使いたいですか?CrystalでもRailsを使いたいですか?
CrystalでもRailsを使いたいですか?
 
Crystalを触り始めてから起こったこと
Crystalを触り始めてから起こったことCrystalを触り始めてから起こったこと
Crystalを触り始めてから起こったこと
 
静的型付け言語 Crystal
静的型付け言語 Crystal静的型付け言語 Crystal
静的型付け言語 Crystal
 
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
東京 Crystal 勉強会 #4 in 渋谷 - イントロダクション
 
Crystal学習の際に印象に残った点
Crystal学習の際に印象に残った点Crystal学習の際に印象に残った点
Crystal学習の際に印象に残った点
 
テストエンジニアと組織構造 @Cybozu
テストエンジニアと組織構造 @Cybozuテストエンジニアと組織構造 @Cybozu
テストエンジニアと組織構造 @Cybozu
 

Crystal勉強会#4 LT資料