Module: JSON_ROA::Client

Defined in:
lib/json_roa/client.rb,
lib/json_roa/client/version.rb,
lib/json_roa/client/relation.rb,
lib/json_roa/client/resource.rb,
lib/json_roa/client/collection.rb

Defined Under Namespace

Classes: Collection, Relation, Resource

Constant Summary collapse

DEFAULT_OPTIONS =
{
  adapter: Faraday.default_adapter,
  raise_error: true,
  retry: true
}
VERSION =
'2.0.0'

Class Method Summary collapse

Class Method Details

.connect(url, options = {}) {|@conn| ... } ⇒ Object

Yields:

  • (@conn)

52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/json_roa/client.rb', line 52

def connect(url, options = {}, &_block)
  options = DEFAULT_OPTIONS.merge(options)
  @conn = Faraday.new(
    url: url,
    headers: { accept: 'application/json-roa+json' }) do |conn|
      conn.use ::JSON_ROA::Middleware
      conn.response :json, content_type: /\bjson$/
      if options[:retry]
        conn.request :retry
      end
      if options[:raise_error]
        conn.use Faraday::Response::RaiseError
      end
      if options[:adapter]
        conn.adapter options[:adapter]
      end
    end

  yield @conn if block_given?
  Relation.new @conn, 'root', 'href' => url
end