swagger-docs 0.2.0 → 0.2.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: 979bda39f8d785e5d599ae56058247e02b9c8335
4
- data.tar.gz: d2e4e3cc8356e686e72376012249ca2ee1c00375
3
+ metadata.gz: c9fdc3f4f644a149fff976af8f32e4a084749d95
4
+ data.tar.gz: ec345458634e9e25fee45ace966b271d1d8bd273
5
5
  SHA512:
6
- metadata.gz: f409fe0f7a4b448fbfe63c276c1ecb8faf5d9242e3f06d4864950c1df97a497542dc153c8a1b4b8c630d7d499e4040dae7ae58a45f89e6f0a7febea327a0062b
7
- data.tar.gz: 7b6ec4109fea5d965160218f77a89b3630bc89987660556c703bb9cb2419c82263c87d076d2cb1d57a424515ae4f7d334cf88d59ebe7c68e5efd72e9ff1122d1
6
+ metadata.gz: 45bb296a5aa61b7b7ecae8eb1706da6483bb7febe4b189f36490203e39732ffc2e0f54271298aec7d1a0d0615eeedc808fa599ce5ff7bab1ba8ed2afb92911c6
7
+ data.tar.gz: 566577465f61ef479399c9ef270f5762905e4b9f173ce2d11d1111a3162ace73621b78b6b39fc489dca7793e7bbb47e301bafb65cf823a3b346d4302f8fe8ded
@@ -1,3 +1,7 @@
1
+ ## 0.2.1
2
+
3
+ - Add support for Authorizations (OAuth 2.0) - Thanks to @RKushnir #97
4
+
1
5
  ## 0.2.0
2
6
 
3
7
  - Additional logging for generation failures (suggested in #81)
data/README.md CHANGED
@@ -10,6 +10,11 @@ Generates swagger-ui json files for rails apps with APIs. You add the swagger DS
10
10
  [gemnasium]: https://gemnasium.com/richhollis/swagger-docs
11
11
  [coveralls]: https://coveralls.io/r/richhollis/swagger-docs
12
12
 
13
+ ## Swagger Version Specification Support
14
+
15
+ This project supports elements of the v1.2 swagger specification. It *does not* support the v2 specification. If you are looking for support for the newer specification the please see the [swagger-blocks](https://github.com/fotinakis/swagger-blocks/) project. I don't currently have any plans to add support for v2.0 at this time.
16
+
17
+ ## Example usage
13
18
 
14
19
  Here is an extract of the DSL from a user controller API class:
15
20
 
@@ -52,6 +52,10 @@ module Swagger
52
52
  normalize_model_properties @models
53
53
  end
54
54
 
55
+ def authorizations
56
+ metadata.authorizations
57
+ end
58
+
55
59
  private
56
60
 
57
61
  def build_resource_root_hash
@@ -61,7 +65,8 @@ module Swagger
61
65
  "basePath" => base_path,
62
66
  "resourcePath" => resource_path,
63
67
  "apis" => apis,
64
- "resourceFilePath" => resource_file_path
68
+ "resourceFilePath" => resource_file_path,
69
+ "authorizations" => authorizations
65
70
  }
66
71
  end
67
72
 
@@ -3,7 +3,7 @@ module Swagger
3
3
  class ApiDeclarationFileMetadata
4
4
  DEFAULT_SWAGGER_VERSION = "1.2"
5
5
 
6
- attr_reader :api_version, :path, :base_path, :controller_base_path, :swagger_version, :camelize_model_properties
6
+ attr_reader :api_version, :path, :base_path, :controller_base_path, :swagger_version, :camelize_model_properties, :authorizations
7
7
 
8
8
  def initialize(api_version, path, base_path, controller_base_path, options={})
9
9
  @api_version = api_version
@@ -12,6 +12,7 @@ module Swagger
12
12
  @controller_base_path = controller_base_path
13
13
  @swagger_version = options.fetch(:swagger_version, DEFAULT_SWAGGER_VERSION)
14
14
  @camelize_model_properties = options.fetch(:camelize_model_properties, true)
15
+ @authorizations = options.fetch(:authorizations, {})
15
16
  end
16
17
  end
17
18
  end
@@ -61,7 +61,13 @@ module Swagger
61
61
  end
62
62
 
63
63
  def generate_doc(api_version, settings, config)
64
- root = { "apiVersion" => api_version, "swaggerVersion" => "1.2", "basePath" => settings[:base_path], :apis => [] }
64
+ root = {
65
+ "apiVersion" => api_version,
66
+ "swaggerVersion" => "1.2",
67
+ "basePath" => settings[:base_path],
68
+ :apis => [],
69
+ :authorizations => settings[:authorizations]
70
+ }
65
71
  results = {:processed => [], :skipped => []}
66
72
  resources = []
67
73
 
@@ -159,10 +165,13 @@ module Swagger
159
165
  end
160
166
 
161
167
  def generate_resource(path, apis, models, settings, root, config)
162
- metadata = ApiDeclarationFileMetadata.new(root["apiVersion"], path, root["basePath"],
163
- settings[:controller_base_path],
164
- camelize_model_properties: config.fetch(:camelize_model_properties, true),
165
- swagger_version: root["swaggerVersion"])
168
+ metadata = ApiDeclarationFileMetadata.new(
169
+ root["apiVersion"], path, root["basePath"],
170
+ settings[:controller_base_path],
171
+ camelize_model_properties: config.fetch(:camelize_model_properties, true),
172
+ swagger_version: root["swaggerVersion"],
173
+ authorizations: root[:authorizations]
174
+ )
166
175
  declaration = ApiDeclarationFile.new(metadata, apis, models)
167
176
  declaration.generate_resource
168
177
  end
@@ -210,10 +219,12 @@ module Swagger
210
219
  controller_base_path = trim_leading_slash(config[:controller_base_path] || "")
211
220
  base_path += "/#{controller_base_path}" unless controller_base_path.empty?
212
221
  api_file_path = config[:api_file_path]
222
+ authorizations = config[:authorizations]
213
223
  settings = {
214
224
  base_path: base_path,
215
225
  controller_base_path: controller_base_path,
216
- api_file_path: api_file_path
226
+ api_file_path: api_file_path,
227
+ authorizations: authorizations
217
228
  }.freeze
218
229
  end
219
230
 
@@ -1,5 +1,5 @@
1
1
  module Swagger
2
2
  module Docs
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -5,51 +5,44 @@ describe Swagger::Docs::ApiDeclarationFileMetadata do
5
5
  describe "#initialize" do
6
6
  it "sets the api_version property" do
7
7
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
8
-
9
8
  expect(metadata.api_version).to eq("1.0")
10
9
  end
11
-
12
10
  it "sets the path property" do
13
11
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
14
-
15
12
  expect(metadata.path).to eq("path")
16
13
  end
17
-
18
14
  it "sets the base_path property" do
19
15
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
20
-
21
16
  expect(metadata.base_path).to eq("basePath")
22
17
  end
23
-
24
18
  it "sets the controller_base_path property" do
25
19
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
26
-
27
20
  expect(metadata.controller_base_path).to eq("controllerBasePath")
28
21
  end
29
-
30
22
  it "defaults the swagger_version property to DEFAULT_SWAGGER_VERSION" do
31
23
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
32
-
33
24
  expect(metadata.swagger_version).to eq(described_class::DEFAULT_SWAGGER_VERSION)
34
25
  end
35
-
36
26
  it "allows the swagger_version property to be_overriden" do
37
27
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath", swagger_version: "2.0")
38
-
39
28
  expect(metadata.swagger_version).to eq("2.0")
40
29
  end
41
-
42
-
43
30
  it "defaults the camelize_model_properties property to true" do
44
31
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
45
-
46
32
  expect(metadata.camelize_model_properties).to eq(true)
47
33
  end
48
-
49
34
  it "allows the camelize_model_properties property to be overidden" do
50
35
  metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath", camelize_model_properties: false)
51
-
52
36
  expect(metadata.camelize_model_properties).to eq(false)
53
37
  end
38
+ it "defaults the authorizations property to empty hash" do
39
+ metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath")
40
+ expect(metadata.authorizations).to eq({})
41
+ end
42
+ it "allows the authorizations property to be overidden" do
43
+ authorizations = {foo: 'bar'}
44
+ metadata = described_class.new("1.0", "path", "basePath", "controllerBasePath", authorizations: authorizations)
45
+ expect(metadata.authorizations).to eq(authorizations)
46
+ end
54
47
  end
55
48
  end
@@ -63,7 +63,8 @@ describe Swagger::Docs::ApiDeclarationFile do
63
63
  "apis"=> declaration.apis,
64
64
  "resourcePath"=> declaration.resource_path,
65
65
  :models=> declaration.models,
66
- "resourceFilePath" => declaration.resource_file_path
66
+ "resourceFilePath" => declaration.resource_file_path,
67
+ "authorizations" => {}
67
68
  }
68
69
  expect(declaration.generate_resource).to eq(expected_response)
69
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rich Hollis