Upgrade to Pro — share decks privately, control downloads, hide ads and more …

地方公共団体コードを便利に扱うためのGemを作った

4a0e3afe85259f2973dbc9386b6a4bb3?s=47 ikuma-t
January 20, 2022

 地方公共団体コードを便利に扱うためのGemを作った

K-Ruby#28、LT会の登壇資料です

4a0e3afe85259f2973dbc9386b6a4bb3?s=128

ikuma-t

January 20, 2022
Tweet

More Decks by ikuma-t

Other Decks in Programming

Transcript

  1. 2022.01.20 ikuma-t 地方公共団体コードを 便利に扱うためのGemを作った #はじめてのGem K-Ruby#28

  2. ikuma-t ・FJORD BOOT CAMPで学習中です! ・趣味:ツール・自動化、ドット絵、作曲家巡り ・住んでいるところ:千葉県 ・今年のお正月は鹿児島黒牛の牛しゃぶを食べました@千葉 K-Ruby 初参加です 

      @ikuma-t ikuma-t セットプチフォッカ ikuma-t  IkumaTadokoro 自己紹介
  3. 地方公共団体コードを 便利に扱うためのGemを作った話 今回話すこと

  4. つくったもの「jp_local_gov」 日本の地方公共団体コードと市区町村の情報を変換できるGem ・鹿児島県 ・鹿児島市 ・県庁あり 市区町村情報 jp_local_gov 4 6 2

    0 1 2 地方公共団体コード 地方公共団体コード 市区町村にわりふられた一意のコード 都道府県 市区町村 検査数字
  5. なんで作った?

  6. 現在開発中のサービスで 必要だったから!!

  7. None
  8. 市区町村ごとにレコードを持たないといけない 市区町村情報をメンテするのはダルい

  9. Gemで情報を持てたらよさそう →作ってみるか!

  10. なにができるの?

  11. できること(地方公共団体コードと自治体情報の変換) JpLocalGov.find id(地方公共団体コード)検索を行う @param code[String] @return [JpLocalGov::LocalGov] JpLocalGov.where 条件検索(複数の場合AND)を行う @param

    condition[Hash] @return [Array]
  12. できること(Railsで使用する) local_government includeされると、引数で指定したカラムに対して、 local_governmentメソッドが使用可能になる このメソッドを経由して、以下の情報を表示できる ・都道府県 ・市区町村 ・都道府県庁所在地かどうか 【テーブル定義】 insurance_fees

    ・id: integer ・local_gov_code: string
  13. できること(その他) 【テーブル定義】 insurance_fees ・id: integer ・local_gov_code: string ・コードが有効かどうかのチェック(バリデーション用) ・ランダムな地方自治体情報の生成(テストデータ用) ・すべての自治体情報を返す(セレクトボックス用)

    ...詳しくはリポジトリのREADMEを参照 使いそうなメソッドは順次追加中
  14. くふうしたところ

  15. データ更新処理の自動化 このGemで一番重要な、地方公共団体データの更新処理を自動化 総務省HP 地方公共団体 コード GitHub Actions(月1) ... 北海道 青森県

    沖縄県 sqlite3 ソートと 分割 差分あり →PR作成 チェック してマージ
  16. RBS対応 ・デフォルトでもスケルトンを作成するように なったのでこのGemでも対応 ・CIでSteepを実行して、型チェック https://bit.ly/3Kec8sB

  17. Gemをつくってみた感想

  18. 感想:はじめてのGemをつくってみて ・作り手になることで、OSSがより身近になった ・今まで機能しか見ていなかったところから、それ以外の構成とか、  その先にいるメンテナの労力が、少しだけわかるようになった ・もっと力をつけてOSSに貢献できるよう、今年もがんばりたい

  19. ありがとうございました