skeleton 0.3.0 → 0.3.1

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
  SHA1:
3
- metadata.gz: 61b5c57ad3f55a99c4f8f7b0c671d7e3bad289e2
4
- data.tar.gz: 4532bd18c8c705881bce6e06660e402448dc37ad
3
+ metadata.gz: 58285e26920063075ffa03730ccae0341a4dc9d9
4
+ data.tar.gz: ad736281c2dbfe91f598f37ea9bc5eda9cd6cf4d
5
5
  SHA512:
6
- metadata.gz: bcfa898ec87b7a53c0c7409629222b8aa200544f72e1f10b78ad01c13e58af7ccf8d265defbecaedb1191c50156168357b34a7fec3284f9cf78e5e73e7e91ba5
7
- data.tar.gz: 61969916dcf9824aa13baa48a6bcd9931ef35097afb3e40ee3a944182bad472332cf2106eea437bb6a285c9cfe84880fa705ed35d6666163e774e7560a4a0e8b
6
+ metadata.gz: 58881cf63b7590a2e87d5bcfcd6f23efd55e62015e7bd8359bc96ae3c19b5fe84c20aa931370da7561e1befb8731bb0da2716939be02290ea358a04ecaed1683
7
+ data.tar.gz: 566f390c0c872baa4f54209c052321d901d19829733ce97cda6297704087094a7d55e6a22c34897fd42ff84918c2e001baaac946e5d84a26be336de5f8cf2ab0
@@ -1,5 +1,4 @@
1
1
  require 'skeleton/structure'
2
- require 'skeleton/serializers/swagger'
3
2
 
4
3
  module Skeleton
5
4
  class Config
@@ -147,6 +147,7 @@ module Skeleton
147
147
 
148
148
  def to_swagger_hash
149
149
  hash = {}
150
+ hash[:version] = '2.0'
150
151
  hash[:info] = info.to_swagger_hash if info?
151
152
  hash[:host] = host if host?
152
153
  hash[:basePath] = base_path if base_path?
@@ -1,3 +1,3 @@
1
1
  module Skeleton
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
@@ -1,8 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  require 'skeleton'
4
- require 'skeleton/serializers/swagger'
5
- require 'pp'
6
4
 
7
5
  describe 'A simple use case' do
8
6
  describe 'validating the first case' do
@@ -125,6 +123,9 @@ describe 'A simple use case' do
125
123
  end
126
124
  end
127
125
  end
126
+ @structure.to_json
127
+ @structure.to_swagger_json
128
128
  end
129
+
129
130
  end
130
131
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skeleton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Johnston
@@ -103,7 +103,6 @@ files:
103
103
  - lib/skeleton/security_definitions.rb
104
104
  - lib/skeleton/security_requirement.rb
105
105
  - lib/skeleton/security_scheme.rb
106
- - lib/skeleton/serializers/swagger.rb
107
106
  - lib/skeleton/structure.rb
108
107
  - lib/skeleton/tag.rb
109
108
  - lib/skeleton/version.rb
@@ -1,212 +0,0 @@
1
- require 'multi_json'
2
-
3
- module Skeleton
4
- module Serializers
5
- class Swagger
6
- attr_accessor :structure
7
-
8
- def initialize(args={})
9
- @structure = args[:structure]
10
- @version = args[:version] || '2.0'
11
- end
12
-
13
- def to_hash
14
- hash = {
15
- swagger: @version,
16
- info: dump_info_to_json(structure.info),
17
- host: structure.host,
18
- basePath: structure.base_path,
19
- schemes: structure.schemes
20
- }
21
-
22
- hash[:consumes] = structure.consumes unless structure.consumes.empty?
23
- hash[:produces] = structure.produces unless structure.produces.empty?
24
-
25
- hash[:paths] = {}
26
- structure.paths.each do |key, path|
27
- hash[:paths][key] = dump_path_to_json(path)
28
- end
29
-
30
- hash
31
- end
32
-
33
- def to_json
34
- MultiJson.dump(to_hash)
35
- end
36
-
37
- def dump_info_to_json(info)
38
- hash = {}
39
- hash[:title] = info.title if info.title?
40
- hash[:description] = info.description if info.description?
41
- hash[:version] = info.version if info.version?
42
- hash[:termsOfService] = info.terms_of_service if info.terms_of_service?
43
-
44
- if info.license?
45
- hash[:license] = {}
46
- hash[:license][:name] = info.license.name if info.license.name?
47
- hash[:license][:url] = info.license.url if info.license.url?
48
- end
49
- hash
50
- end
51
-
52
- def dump_path_to_json(path)
53
- hash = {}
54
- path.operations.each do |method, operation|
55
- hash[method] = dump_operation_to_json(operation)
56
- end
57
- hash
58
- end
59
-
60
- def dump_operation_to_json(operation)
61
- hash = {}
62
- hash[:tags] = operation.tags if operation.tags?
63
- hash[:summary] = operation.summary if operation.summary?
64
- hash[:description] = operation.description if operation.description?
65
-
66
- if operation.external_docs?
67
- hash[:externalDocs] = dump_external_docs_to_json(operation.external_docs)
68
- end
69
-
70
- hash[:operationId] = operation.operation_id if operation.operation_id?
71
- hash[:consumes] = operation.consumes if operation.consumes?
72
- hash[:produces] = operation.produces if operation.produces?
73
-
74
- if operation.parameters?
75
- hash[:parameters] = operation.parameters.map do |parameter|
76
- dump_parameter_to_json(parameter)
77
- end
78
- end
79
-
80
- hash[:responses] = dump_response_to_json(operation.responses) if operation.responses?
81
- hash[:schemes] = operation.schemes if operation.schemes?
82
- hash[:deprecated] = operation.deprecated if operation.deprecated?
83
-
84
- if operation.security?
85
- hash[:security] = dump_security_to_json(operation.security)
86
- end
87
-
88
- hash
89
- end
90
-
91
- def dump_parameter_to_json(parameter)
92
- hash = {}
93
-
94
- hash[:name] = parameter.name if parameter.name?
95
- hash[:in] = parameter.location if parameter.location?
96
- hash[:description] = parameter.description if parameter.description?
97
- hash[:required] = parameter.required if parameter.required?
98
-
99
- if parameter.schema?
100
- hash[:schema] = dump_schema_to_json(parameter.schema)
101
- else
102
- hash[:type] = parameter.type if parameter.type?
103
- hash[:format] = parameter.format if parameter.format?
104
- hash[:items] = parameter.items if parameter.items?
105
- hash[:collectionFormat] = parameter.collection_format if parameter.collection_format?
106
- hash[:default] = parameter.default if parameter.default?
107
- hash[:maximum] = parameter.maximum if parameter.maximum?
108
- hash[:exclusiveMaximum] = parameter.exclusive_maximum if parameter.exclusive_maximum?
109
- hash[:minimum] = parameter.minimum if parameter.minimum?
110
- hash[:exclusiveMinimum] = parameter.exclusive_minimum if parameter.exclusive_minimum?
111
- hash[:maxLength] = parameter.max_length if parameter.max_length?
112
- hash[:minLength] = parameter.min_length if parameter.min_length?
113
- hash[:pattern] = parameter.pattern if parameter.pattern?
114
- hash[:maxItems] = parameter.max_items if parameter.max_items?
115
- hash[:minItems] = parameter.min_items if parameter.min_items?
116
- hash[:uniqueItems] = parameter.unique_items if parameter.unique_items?
117
- hash[:enum] = parameter.enum if parameter.enum?
118
- hash[:multipleOf] = parameter.multiple_of if parameter.multiple_of?
119
- end
120
-
121
- hash
122
- end
123
-
124
- def dump_external_docs_to_json(external_docs)
125
- hash = {}
126
- hash[:description] = external_docs.description if external_docs.description?
127
- hash[:url] = external_docs.url if external_docs.url?
128
- hash
129
- end
130
-
131
- def dump_security_to_json(security)
132
- hash = {}
133
- hash[:type] = security.type
134
- hash[:description] = security.description
135
- hash[:name] = security.name
136
- hash[:in] = security.location
137
- hash[:flow] = security.flow
138
- hash[:authorizationUrl] = security.authorization_url
139
- hash[:tokenUrl] = security.token_url
140
- hash[:flow] = security.flow
141
- hash[:scopes] = security.scopes
142
- hash
143
- end
144
-
145
- def dump_response_to_json(response)
146
- hash = {}
147
- hash[:description] = response.description
148
- hash[:schema] = dump_schema_to_json(response.schema) if response.schema?
149
- hash[:headers] = dump_headers_to_json(response.headers) if response.headers?
150
- hash[:examples] = dump_examples_to_json(response.examples) if response.examples?
151
- hash
152
- end
153
-
154
- def dump_schema_to_json(schema)
155
- hash = {}
156
- hash[:discriminator] = schema.discriminator if schema.discriminator?
157
- hash[:readOnly] = schema.read_only?
158
- hash[:externalDocs] = schema.external_docs if schema.external_docs?
159
- hash[:description] = schema.description if schema.description?
160
- hash[:examples] = dump_examples_to_json(schema.examples) if schema.examples?
161
- hash[:type] = schema.type if schema.type?
162
- hash[:format] = schema.format if schema.format?
163
- hash[:items] = schema.items if schema.items?
164
- hash[:collectionFormat] = schema.collection_format if schema.collection_format?
165
- hash[:default] = schema.default if schema.default?
166
- hash[:maximum] = schema.maximum if schema.maximum?
167
- hash[:exclusiveMaximum] = schema.exclusive_maximum if schema.exclusive_maximum?
168
- hash[:minimum] = schema.minimum if schema.minimum?
169
- hash[:exclusiveMinimum] = schema.exclusive_minimum if schema.exclusive_minimum?
170
- hash[:maxLength] = schema.max_length if schema.max_length?
171
- hash[:minLength] = schema.min_length if schema.min_length?
172
- hash[:pattern] = schema.pattern if schema.pattern?
173
- hash[:maxItems] = schema.max_items if schema.max_items?
174
- hash[:minItems] = schema.min_items if schema.min_items?
175
- hash[:uniqueItems] = schema.unique_items if schema.unique_items?
176
- hash[:enum] = schema.enum if schema.enum?
177
- hash[:multipleOf] = schema.multiple_of if schema.multiple_of?
178
- hash
179
- end
180
-
181
- def dump_headers_to_json(header)
182
- hash = {}
183
-
184
- hash[:description] = header.description if header.description?
185
- hash[:type] = header.type if header.type?
186
- hash[:format] = header.format if header.format?
187
- hash[:items] = header.items if header.items?
188
- hash[:collectionFormat] = header.collection_format if header.collection_format?
189
- hash[:default] = header.default if header.default?
190
- hash[:maximum] = header.maximum if header.maximum?
191
- hash[:exclusiveMaximum] = header.exclusive_maximum if header.exclusive_maximum?
192
- hash[:minimum] = header.minimum if header.minimum?
193
- hash[:exclusiveMinimum] = header.exclusive_minimum if header.exclusive_minimum?
194
- hash[:maxLength] = header.max_length if header.max_length?
195
- hash[:minLength] = header.min_length if header.min_length?
196
- hash[:pattern] = header.pattern if header.pattern?
197
- hash[:maxItems] = header.max_items if header.max_items?
198
- hash[:minItems] = header.min_items if header.min_items?
199
- hash[:uniqueItems] = header.unique_items if header.unique_items?
200
- hash[:enum] = header.enum if header.enum?
201
- hash[:multipleOf] = header.multiple_of if header.multiple_of?
202
-
203
- hash
204
- end
205
-
206
- def dump_examples_to_json(schema)
207
- hash = {}
208
- hash
209
- end
210
- end
211
- end
212
- end