reynard 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3c34bb5538fc723eb3089aed2fcc9297caecd7c12802081fb1c0ffd5b930885
4
- data.tar.gz: fd266bc7821ef67989261e66923605b3ea0b249f19c028ada40815928c070b7b
3
+ metadata.gz: 7a8daacae5e12d137867a4d383d7525ff896be877423142e6af37130223e5fe8
4
+ data.tar.gz: 321106d0abdc5698b64197a1c1404f70a176e23555d1e8a95bd64243fba095df
5
5
  SHA512:
6
- metadata.gz: edd450cc95fc83f6f16c8e8a77d7600f98d8524fe75a1abc78b383cd6442458acf3351e7ea0513cb539a00870bea79729a57120a4c0b556e54c937dcc0275e63
7
- data.tar.gz: b00d56c46b6c29f5ccf01a83a6fc8f62e53a44953787441bb13af36a7025a0712f75ad537507f917644acff2f134edf71502461cb930e0bbe1c5a4a1b0ff9f6f
6
+ metadata.gz: 50e9628e1fb271bc9e94bb6fb8719d781e8db2535c93831ad38b01e0add48c59c96f1d0afe8ec32e280a3504c62c65845490ec256c614650b72495ab3e983425
7
+ data.tar.gz: 732e7687b7c7a871acc31cd18da5558115ffdcbb679068c5cd8d7759086755d781ac229a9f664d61f619b3f6deb3b50dec86752a201c9aa1b88e130923f5a07d
@@ -4,6 +4,7 @@ class Reynard
4
4
  # Exposes a public interface to build a request context.
5
5
  class Context
6
6
  extend Forwardable
7
+
7
8
  def_delegators :@request_context, :verb, :path, :full_path, :url
8
9
 
9
10
  def initialize(specification:, inflector:, request_context: nil)
@@ -6,6 +6,7 @@ class Reynard
6
6
  # in the specification.
7
7
  class Response
8
8
  extend Forwardable
9
+
9
10
  def_delegators :@http_response, :code, :content_type, :[], :body
10
11
 
11
12
  def initialize(specification:, inflector:, request_context:, http_response:)
data/lib/reynard/model.rb CHANGED
@@ -4,6 +4,7 @@ class Reynard
4
4
  # Superclass for dynamic classes generated by the object builder.
5
5
  class Model < BasicObject
6
6
  extend ::Forwardable
7
+
7
8
  def_delegators :@attributes, :[], :empty?
8
9
 
9
10
  class << self
@@ -16,7 +16,8 @@ class Reynard
16
16
  def type
17
17
  return @type if defined?(@type)
18
18
 
19
- @type = @specification.dig(*node, 'type')
19
+ schema = @specification.dig(*node)
20
+ @type = schema ? self.class.determine_schema_type(schema) : nil
20
21
  end
21
22
 
22
23
  def model_name
@@ -46,6 +47,14 @@ class Reynard
46
47
  )
47
48
  end
48
49
 
50
+ def self.determine_schema_type(schema)
51
+ if schema.key?('type')
52
+ schema['type']
53
+ elsif schema.keys.intersect?(%w[allOf anyOf oneOf])
54
+ 'object'
55
+ end
56
+ end
57
+
49
58
  private
50
59
 
51
60
  def model_naming
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Reynard
4
- VERSION = '0.10.1'
4
+ VERSION = '0.10.2'
5
5
  end
data/lib/reynard.rb CHANGED
@@ -11,6 +11,7 @@ require 'uri'
11
11
  # OpenAPI specification.
12
12
  class Reynard
13
13
  extend Forwardable
14
+
14
15
  def_delegators :build_context, :logger, :base_url, :operation, :headers, :params
15
16
  def_delegators :@specification, :servers
16
17
  def_delegators :@inflector, :snake_cases
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reynard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manfred Stienstra