Class: Jsonism::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonism/client.rb

Defined Under Namespace

Classes: BaseUrlNotFound

Instance Method Summary collapse

Constructor Details

#initialize(schema: nil) ⇒ Client

Returns a new instance of Client.

Parameters:

  • schema (Hash) (defaults to: nil)

    JSON Schema

Raises:

  • (JsonSchema::SchemaError)


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_urlString

Note:

Base URL is gained from the top-level link property whose ‘rel` is self

Returns Base URL of API.

Returns:

  • (String)

    Base URL of API

Raises:



22
23
24
# File 'lib/jsonism/client.rb', line 22

def base_url
  @base_url ||= root_link.try(:href) or raise BaseUrlNotFound
end

#connectionFaraday::Connection

Returns:

  • (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_classesHash<String, Class>

Examples:

resource_classes #=> { "App" #=> #<Class> }

Returns:

  • (Hash<String, Class>)


29
30
31
# File 'lib/jsonism/client.rb', line 29

def resource_classes
  @resource_classes ||= {}
end