Class: Jsonism::Definer

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client: nil, schema: nil) ⇒ Definer

Returns a new instance of Definer.

Parameters:

  • client (Jsonism::Client) (defaults to: nil)
  • schema (JsonSchema::Schema) (defaults to: nil)

    JSON Schema



18
19
20
21
# File 'lib/jsonism/definer.rb', line 18

def initialize(client: nil, schema: nil)
  @client = client
  @schema = schema
end

Class Method Details

.call(*args) ⇒ Object

Utility wrapper



4
5
6
# File 'lib/jsonism/definer.rb', line 4

def self.call(*args)
  new(*args).call
end

Recursively extracts all links from given JSON schema

Parameters:

  • schema (JsonSchema::Schema)

Returns:

  • (Array<JsonSchema::Schema::Link>)


11
12
13
14
# File 'lib/jsonism/definer.rb', line 11

def self.extract_links(schema)
  links = schema.links.select {|link| link.method && link.href }
  links + schema.properties.map {|key, schema| extract_links(schema) }.flatten
end

Instance Method Details

#callObject

Defines methods to call HTTP request from its JSON schema



24
25
26
27
# File 'lib/jsonism/definer.rb', line 24

def call
  define_methods_into(@client)
  define_classes
end