3

私は、5 つまたは 6 つのファラデー要求をインラインで使用するコードをいくつか採用しましたが、それを使用するのは初めてです。モジュールに抽象化しています。このライブラリを使用するのはこれが初めてで、現在持っているものは次のとおりです。

module CoreService
  def self.net_connection param_url
    conn = Faraday.new(:url => param_url ) do |c|
      c.use Faraday::Request::UrlEncoded  # encode request params as "www-form-urlencoded"
      c.use Faraday::Response::Logger     # log request & response to STDOUT
      c.use Faraday::Adapter::NetHttp     # perform requests with Net::HTTP
    end
    return conn
  end

  def self.success? arg
    if [200,302].include? arg.status
      return true
    else
      return false
    end
  end
end

そして次のように使用します:

conn=CoreService.net_connection SOME::URL
url_val = "/other/things"
response = conn.get url_val     

if CoreService.success? response
  puts "THAT WAS A SUCCESS"
else
  puts "THAT WAS NOT A SUCCESS"
end

ただし、これは少しエレガントではありません。応答をモンキーパッチするなど、これを別の方法で記述した方がよいでしょうか? 現在のファラデー応答オブジェクトは成功をサポートしていますか? インスタンスメソッドですが、それは 200 をチェックするだけです。

4

1 に答える 1