swagger-docs 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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