Crystal勉強会#4 LT資料

12
Crystal ににににににに

Transcript of Crystal勉強会#4 LT資料

Page 1: Crystal勉強会#4 LT資料

Crystal にプルリクテロ

Page 2: Crystal勉強会#4 LT資料

github/tbrand

自己紹介鈴木 太一郎

青葉というラーメンが大好きすぎて週一以上で通う

研究 C, CUDA業務 Ruby, Java, Swift趣味 Crystal, Ruby, Android

私情によりここは非公開とさせてくださいませ m(_ _)m

Page 3: Crystal勉強会#4 LT資料

発表内容

「結構痛めの日本人がめっちゃプルリク出してくるよ」

Page 4: Crystal勉強会#4 LT資料

プルリク 1Crystal を知った次の日に出したプルリクCrystal って Ruby との互換があるらしい=> Ruby にあって Crystal にないもの実装したらいいでは=> Array#nitems を実装 (crystal/pull/3501)=> そういうことじゃねぇと弾かれる

Page 5: Crystal勉強会#4 LT資料

プルリク 2Crystal をいろいろ試していた時に気付いてプルリクURI.escape の挙動が Ruby と致命的に違う=> Ruby の方の挙動をする関数を追加 (crystal/pull/3515)=> 無視

Page 6: Crystal勉強会#4 LT資料

プルリク 3Crystal で個人的に不便に感じたためプルリク`crystal build` がコードを指定しないと動かない=> プロジェクトのルートではコードを指定しなくても動けばいいのに=> `crystal init` で shard.yml 作るし=> 実装 (crystal/pull/3538)=> 「 shards で実装してくんない?」

Page 7: Crystal勉強会#4 LT資料

プルリク 4プルリク 3 を shards に出す言われたように `shards build` を実装 (shards/pull/136)=> 紆余曲折=> マージ!

Page 8: Crystal勉強会#4 LT資料
Page 9: Crystal勉強会#4 LT資料

最近のプルリク• `crystal init` で作成される .gitignore に /bin/ を追加

• crystal/pull/3596• => マージ!

• crystal-mysql の MemoryIO を IO::Memory に• crystal-mysql/pull/13• => マージ!

Page 10: Crystal勉強会#4 LT資料

まとめ• これからも痛い日本人代表でプルリクを出していきたいです。

Page 11: Crystal勉強会#4 LT資料

宣伝

Page 12: Crystal勉強会#4 LT資料

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,selectSampleModel.where(“age = 25”).order(“score”).range(0, 10).select

モデルの関連付けhas, belongs など

dependencies: topaz: github: tbrand/topaz

インストール