niwasawaの迷子センター

迷子になりがちな地図・位置情報系プログラマの日記ブログ。

Ruby ライブラリ exifr に PR を出してミリ秒を処理できるようにしてもらった

GitHub で他の人のリポジトリに Pull Request を出すの初めて(*´∀`)

時系列な出来事を箇条書き

  • 普段から写真画像を処理するために Exif 情報を抽出できる Ruby のライブラリ exifr を使っていた
  • iOS アプリ「Microsoft Pix カメラ」で写真を撮ると Exif の日時情報にミリ秒が入る
  • iOS 標準の「カメラ」アプリで写真を撮ると Exif の日時情報にミリ秒が付かない
  • exifr 1.3.4 ではミリ秒付きの日時情報を処理していない (ミリ秒無しだと Time オブジェクトで返ってくるが、ミリ秒付きの場合は処理できないフォーマットとして String で返ってくる)
  • exifr でミリ秒付きの日時情報を処理したいと考える
  • exifr を GitHub 上で fork して、ミリ秒を処理するコードを書いて Pull Request を出す
  • コードが汚いので exifr 開発者の方に修正案を出される (;´Д`)
  • コードを再度修正
  • Pull Request をマージしてもらう
  • exifr 1.3.5 がリリースされる。自分の名前もクレジットしてもらえた(∩´∀`)∩

f:id:niwasawa:20181116222746p:plain

テスト用のデータを準備

テスト用のデータとして使うために写真を撮ったのは今年の5月。大名古屋ビルヂングと名古屋プライムセントラルタワーの写真を撮った。

自分がテストするときはオリジナルの写真データを使ったが、exifr のリポジトリにあるユニットテスト用には大きすぎるので、 ImageMagick で 100px ぐらいに縮小した画像データを生成して Pull Request に追加した。

f:id:niwasawa:20181116222751j:plain

参考情報