今月2回目のgemリリースです。*1
faraday_boolean (0.1.0): Faraday response parser for boolean body https://t.co/txWumtrDQo
— RubyGems (@rubygems) October 20, 2015
とあるAPIのクライアントgemを仕事で作っています。
ほとんどのAPIのレスポンスはjsonなので faraday_middleware のjsonのparserを使ってるのですが、一部のAPIだけがbodyで true
と false
を返してそれをjsonをしてparseしようとエラーになります(;´Д`)
イメージ的にはこんな感じ *2
$ curl http://example.com/boolean/true true
faraday でこのようなbooleanレスポンスをいい感じに扱うためにgemを作りました。
使い方
require "faraday_boolean" connection = Faraday.new(url: "http://example.com") do |conn| conn.response :boolean conn.adapter Faraday.default_adapter end res = connection.get("/boolean/true") res.body #=> true res.body.class #=> TrueClass
上記のように conn.response
に :boolean
を渡せばbodyがtrueかfalseだった時にRubyのtrue
や false
(文字列じゃなくてリテラルの方)で返ります。*3
こういうのきっと誰か作ってるだろうと思ったのですが探してもなかったので自分で作りました
ソースコードはコメント込でたった17行。true と false の完全一致でチェックしてるので誤爆しようがないはず。。。 https://github.com/sue445/faraday_boolean/blob/v0.1.0/lib/faraday_boolean/parse_boolean.rb