Class: Jsonism::Client
- Inherits:
-
Object
- Object
- Jsonism::Client
- Defined in:
- lib/jsonism/client.rb
Defined Under Namespace
Classes: BaseUrlNotFound
Instance Method Summary collapse
-
#base_url ⇒ String
Base URL of API.
- #connection ⇒ Faraday::Connection
-
#initialize(schema: nil) ⇒ Client
constructor
A new instance of Client.
- #resource_classes ⇒ Hash<String, Class>
Constructor Details
#initialize(schema: nil) ⇒ Client
Returns a new instance of Client.
5 6 7 8 |
# File 'lib/jsonism/client.rb', line 5 def initialize(schema: nil) @schema = ::JsonSchema.parse!(schema).tap(&:expand_references!) define end |
Instance Method Details
#base_url ⇒ String
Note:
Base URL is gained from the top-level link property whose ‘rel` is self
Returns Base URL of API.
22 23 24 |
# File 'lib/jsonism/client.rb', line 22 def base_url @base_url ||= root_link.try(:href) or raise BaseUrlNotFound end |
#connection ⇒ Faraday::Connection
11 12 13 14 15 16 17 |
# File 'lib/jsonism/client.rb', line 11 def connection @connection ||= Faraday.new(url: base_url) do |connection| connection.request :json connection.response :json connection.adapter :net_http end end |
#resource_classes ⇒ Hash<String, Class>
29 30 31 |
# File 'lib/jsonism/client.rb', line 29 def resource_classes @resource_classes ||= {} end |