Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Crystal勉強会#4 LT資料

442 views

Published on

Twitter: https://twitter.com/taichiro_dev
Github: https://github.com/tbrand
Topaz: https://github.com/tbrand/topaz

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Crystal勉強会#4 LT資料

  1. 1. Crystalにプルリクテロ
  2. 2. github/tbrand 自己紹介 鈴木 太一郎 青葉というラーメンが大好きすぎて週一以上で通う 研究 C, CUDA 業務 Ruby, Java, Swift 趣味 Crystal, Ruby, Android 私情によりここは非公開とさせてくださいませm(_ _)m
  3. 3. 発表内容 「結構痛めの日本人がめっちゃプルリク出してくるよ」
  4. 4. プルリク1 Crystalを知った次の日に出したプルリク CrystalってRubyとの互換があるらしい => RubyにあってCrystalにないもの実装したらいいでは => Array#nitemsを実装(crystal/pull/3501) => そういうことじゃねぇと弾かれる
  5. 5. プルリク2 Crystalをいろいろ試していた時に気付いてプルリク URI.escapeの挙動がRubyと致命的に違う => Rubyの方の挙動をする関数を追加(crystal/pull/3515) => 無視
  6. 6. プルリク3 Crystalで個人的に不便に感じたためプルリク `crystal build`がコードを指定しないと動かない => プロジェクトのルートではコードを指定しなくても動けばいいのに => `crystal init`でshard.yml作るし => 実装(crystal/pull/3538) => 「shardsで実装してくんない?」
  7. 7. プルリク4 プルリク3をshardsに出す 言われたように`shards build`を実装(shards/pull/136) => 紆余曲折 => マージ!
  8. 8. 最近のプルリク • `crystal init`で作成される.gitignoreに/bin/を追加 • crystal/pull/3596 • => マージ! • crystal-mysqlのMemoryIOをIO::Memoryに • crystal-mysql/pull/13 • => マージ!
  9. 9. まとめ • これからも痛い日本人代表でプルリクを出していきたいです。 完
  10. 10. 宣伝
  11. 11. 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 インストール

×