shimoju / metabase-ruby

Ruby client library for Metabase API
MIT License
28 stars 27 forks source link

Use double splat #35

Closed shimoju closed 6 years ago

shimoju commented 6 years ago

POST /api/card/:card-id/query/:export-formatを実装しようとしていて、

というわけで既存のparams = {}になっているところを可変長キーワード引数**paramsに置き換えます。 引数がうまく渡せているかの確認のため、#loginにテストを追加しました。 ハッシュを組み立ててそれを渡したいときは不便かもと思ったら、可変長キーワード引数にハッシュをそのまま渡せるんだなー便利

さらに考えると、GET /api/card/:idclient.card(1)でもidを表すことはわかるけど、 GET /api/embed/card/:tokenは、client.embed_card('hoge')じゃなくてclient.embed_card(token: 'hoge')にしたいよなあとなる。 GET /api/embed/dashboard/:token/dashcard/:dashcard-id/card/:card-idはもうだいぶわからない。 全部キーワード引数にしてしまう方がわかりやすくなるし統一感も出るなと。 client.card(id: 1)client.query_card(id: 1, format: :csv)でも結構いい感じはする。

いまのところは「パスのパラメータで、かつリソースのidを表す引数は通常引数、それ以外はキーワード引数」というような規約でいってみて、無理ぽってなったら全部キーワード引数にしてみようかなと思う。