openapi_contracts 0.3.0 → 0.4.0

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: b457539132f36e2ce4da92d0b34721465ed731b5ce33323bedebbebcfe5ad8fa
4
- data.tar.gz: 378f005f60327e8835908621f3991ffd8954434c5343ad91918026b0d2ce0444
3
+ metadata.gz: '099e0e1cdfaf7938e46ba4bdcdbad4d6627d9065a5af46eb757290b27d3faed8'
4
+ data.tar.gz: a49babd20945272751b9609fa09ddcd7b0da35824aff3de586b059c9d465cba2
5
5
  SHA512:
6
- metadata.gz: f556c79bb2c60a9489b9a48f31ac1acbff8fbbd0bf0279e2b8e5208c270fece99631d2cc8ee4e3d0579a2a82d8f3a4eeb566d609f79149f1d3622908460a2d8b
7
- data.tar.gz: 2961f9afd81b0954fd8e37d0c7fe290e35d87c176d28772d9c272e5d3629440b1e4da5c7223beb1f73e564fd8bc277f3bb05b1061af4138ffb02c5dc677d005a
6
+ metadata.gz: 192fc72178785d45bb029bd9fdd2f1a8af8f33409957375e582701f539d6e8a38715856eabda776904e9acb6d4a36b330f4872a7db1b3f335daeb456299b41f8
7
+ data.tar.gz: 978184d22801606c97d24926a941b5b6d61bdf08d786417df0246cd7ff5ed8321572d60554060ec0c8575ca73f56aa41784d441e154bb9b0d1064f125f9df7d6
data/README.md CHANGED
@@ -16,7 +16,7 @@ First parse your api documentation:
16
16
 
17
17
  ```ruby
18
18
  # This must point to the folder where the "openapi.yaml" file is
19
- $doc = OpenapiContracts::Doc.parse(Rails.root.join('spec', 'fixtures', 'openapi', 'api-docs', 'openapi'))
19
+ $doc = OpenapiContracts::Doc.parse(Rails.root.join('spec/fixtures/openapi/api-docs/openapi'))
20
20
  ```
21
21
 
22
22
  Ideally you do this once in a RSpec `before(:suite)` hook.
@@ -12,7 +12,8 @@ module OpenapiContracts
12
12
  abs_path = @dir.join(path)
13
13
  data = parse_file(abs_path, translate: false)
14
14
  data.deep_merge! merge_components
15
- join_partials(abs_path.dirname, data)
15
+ data = join_partials(abs_path.dirname, data)
16
+ nullable_to_type!(data)
16
17
  end
17
18
 
18
19
  private
@@ -34,10 +35,23 @@ module OpenapiContracts
34
35
  end
35
36
  end
36
37
 
38
+ def nullable_to_type!(object)
39
+ case object
40
+ when Hash
41
+ if object['type'] && object['nullable']
42
+ object['type'] = [object['type'], 'null']
43
+ object.delete 'nullable'
44
+ else
45
+ object.each_value { |o| nullable_to_type! o }
46
+ end
47
+ when Array
48
+ object.each { |o| nullable_to_type! o }
49
+ end
50
+ end
51
+
37
52
  def merge_components
38
53
  data = {}
39
54
  Dir[File.expand_path('components/**/*.yaml', @dir)].each do |file|
40
- # pn = Pathname(file).relative_path_from(@dir)
41
55
  pointer = json_pointer(Pathname(file)).split('/')
42
56
  i = 0
43
57
  pointer.reduce(data) do |h, p|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openapi_contracts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mkon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-25 00:00:00.000000000 Z
11
+ date: 2022-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -78,28 +78,28 @@ dependencies:
78
78
  requirements:
79
79
  - - '='
80
80
  - !ruby/object:Gem::Version
81
- version: 1.29.0
81
+ version: 1.29.1
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - '='
87
87
  - !ruby/object:Gem::Version
88
- version: 1.29.0
88
+ version: 1.29.1
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: rubocop-rspec
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - '='
94
94
  - !ruby/object:Gem::Version
95
- version: 2.10.0
95
+ version: 2.11.1
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 2.10.0
102
+ version: 2.11.1
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -146,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
146
  version: '2.7'
147
147
  - - "<"
148
148
  - !ruby/object:Gem::Version
149
- version: '3.2'
149
+ version: '3.3'
150
150
  required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - ">="