grape-swagger-rails 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
- SHA1:
3
- metadata.gz: 617ea76ec90a7be3612fc3f98732325ec16783fe
4
- data.tar.gz: f7e6812817faa519eddbbab171b867f1939a2974
2
+ SHA256:
3
+ metadata.gz: 2fbbe31ef3358e338372a0e2ad589acff22eec986accfaf7169a5af2357701d6
4
+ data.tar.gz: 6b9672241d274f8b350836b3877d0bd79579d6b499ecf963f66b3aeae4c8303c
5
5
  SHA512:
6
- metadata.gz: fe6bc9648fea3ba5a05f65f8dd127a36992dc191ef70be1dd02bcd5bd1bea8c77f6985404a7e744cb70589e42cea8492c66882f0726265678a917af70c72e4c9
7
- data.tar.gz: 92c82e6f191d3ae186260e8823e44b7715fb4860b7dec1846ba7dae94570dcbb4a03ae93557dfc70892d6cec4acc21645403ae1bf50714b66e4fe91d96052e44
6
+ metadata.gz: 6e9d7ae03cf73df5422183cc1485fb6cc915900fc5cfeaafab6b494491238199ae99094feecf4be65c9a794b93cad21cc7cb6e01c09bc6ae55fc66368ce1f116
7
+ data.tar.gz: 4e5b3c98c11a2316fd2712ee612cabd009ea3baf0e9bdaeacca8a0d497aee8879e27afbd3dc1b102ea83eb0abae7e5d8ecb04b89bb5750b7dcdf591cf2fc1071
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2015-08-19 12:23:54 -0400 using RuboCop version 0.33.0.
3
+ # on 2015-08-19 12:23:54 -0400 using RuboCop version 0.38.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -1,8 +1,20 @@
1
- sudo: false
1
+ addons:
2
+ firefox: 54.0
3
+
4
+ services:
5
+ - xvfb
2
6
 
3
7
  before_install:
8
+ - wget https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.18.0-linux64.tar.gz
9
+ - mkdir geckodriver
10
+ - tar -xzf geckodriver-v0.18.0-linux64.tar.gz -C geckodriver
11
+ - export PATH=$PATH:$PWD/geckodriver
12
+ - gem install bundler -v'< 2'
13
+
14
+ before_script:
4
15
  - "export DISPLAY=:99.0"
5
16
  - "sh -e /etc/init.d/xvfb start"
17
+ - sleep 3 # give xvfb some time to start
6
18
 
7
19
  language: ruby
8
20
 
@@ -39,4 +51,3 @@ matrix:
39
51
  - rvm: ruby-head
40
52
  - rvm: jruby-head
41
53
  - rvm: rbx-2
42
-
@@ -1,8 +1,16 @@
1
+ ### Next Release
2
+
3
+ * Your contribution here.
4
+
5
+ ### 0.3.1 (February 16, 2019)
6
+
7
+ * [#82](https://github.com/ruby-grape/grape-swagger-rails/pull/82): Fixed api_key_default_value - [@konto-andrzeja](https://github.com/konto-andrzeja).
8
+ * [#84](https://github.com/ruby-grape/grape-swagger-rails/pull/84): Added the token api_auth type - [@Jack12816](https://github.com/Jack12816).
9
+
1
10
  ### 0.3.0 (September 22, 2016)
2
11
 
3
12
  * [#70](https://github.com/ruby-grape/grape-swagger-rails/pull/70): Rails 5 support - [@serggl](https://github.com/serggl).
4
13
  * [#68](https://github.com/ruby-grape/grape-swagger-rails/pull/68): Added danger, PR linter - [@dblock](https://github.com/dblock).
5
- * Your contribution here.
6
14
 
7
15
  ### 0.2.2 (July 13, 2016)
8
16
 
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/grape-swagger-rails.svg)](http://badge.fury.io/rb/grape-swagger-rails)
4
4
  [![Build Status](https://travis-ci.org/ruby-grape/grape-swagger-rails.svg)](https://travis-ci.org/ruby-grape/grape-swagger-rails)
5
- [![Dependency Status](https://gemnasium.com/ruby-grape/grape-swagger-rails.svg)](https://gemnasium.com/ruby-grape/grape-swagger-rails)
6
5
  [![Code Climate](https://codeclimate.com/github/ruby-grape/grape-swagger-rails/badges/gpa.svg)](https://codeclimate.com/github/ruby-grape/grape-swagger-rails)
7
6
 
8
7
  Swagger UI as Rails Engine for grape-swagger gem.
@@ -69,7 +68,7 @@ GrapeSwaggerRails.options.headers['Special-Header'] = 'Some Secret Value'
69
68
  ```
70
69
 
71
70
  You can set docExpansion with "none" or "list" or "full", default is "none".
72
- See the official Swagger-UI documentation about [SwaggerUi Parameters](https://github.com/swagger-api/swagger-ui#parameters).
71
+ See the official Swagger-UI documentation about [SwaggerUi Parameters](https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md#parameters).
73
72
 
74
73
  ```ruby
75
74
  GrapeSwaggerRails.options.doc_expansion = 'list'
@@ -77,7 +76,7 @@ GrapeSwaggerRails.options.doc_expansion = 'list'
77
76
 
78
77
  You can set supportedSubmitMethods with an array of the supported HTTP methods, default is `%w{ get post put delete patch }`.
79
78
 
80
- See the official Swagger-UI documentation about [SwaggerUi Parameters](https://github.com/swagger-api/swagger-ui#parameters).
79
+ See the official Swagger-UI documentation about [SwaggerUi Parameters](https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md#parameters).
81
80
 
82
81
  ```ruby
83
82
  GrapeSwaggerRails.options.supported_submit_methods = ["get"]
@@ -129,6 +128,20 @@ GrapeSwaggerRails.options.api_key_name = 'api_token'
129
128
  GrapeSwaggerRails.options.api_key_type = 'query'
130
129
  ```
131
130
 
131
+ If your application used token authentication passed as a header, like Rails does (`authenticate_or_request_with_http_token`), you can configure Swagger to send the token in this form:
132
+
133
+ ```
134
+ Authorization: Token token="WCZZYjnOQFUYfJIN2ShH1iD24UHo58A6TI"
135
+ ```
136
+
137
+ by specify:
138
+
139
+ ```ruby
140
+ GrapeSwaggerRails.options.api_auth = 'token'
141
+ GrapeSwaggerRails.options.api_key_name = 'Authorization'
142
+ GrapeSwaggerRails.options.api_key_type = 'header'
143
+ ```
144
+
132
145
  You can use the ```api_key``` input box to fill in your API token.
133
146
  ### Swagger UI Authorization
134
147
 
@@ -56,7 +56,7 @@ Next Release
56
56
  * Your contribution here.
57
57
  ```
58
58
 
59
- Comit your changes.
59
+ Commit your changes.
60
60
 
61
61
  ```
62
62
  git add CHANGELOG.md
@@ -15,6 +15,12 @@
15
15
  <%=raw "headers.header_#{index} = new SwaggerClient.ApiKeyAuthorization('#{CGI.escapeHTML(key)}', '#{CGI.escapeHTML(value)}', 'header');" %>
16
16
  <% end %>
17
17
 
18
+ <% if GrapeSwaggerRails.options.api_key_default_value.try(:strip).present? &&
19
+ GrapeSwaggerRails.options.headers['Authorization'].blank? %>
20
+ <% headers_count = GrapeSwaggerRails.options.headers.count %>
21
+ <%= raw "headers.header_#{headers_count} = getApiKeyAuthorization();" %>
22
+ <% end %>
23
+
18
24
  window.swaggerUi = new SwaggerUi({
19
25
  url: options.app_url + options.url,
20
26
  dom_id: "swagger-ui-container",
@@ -28,7 +34,6 @@
28
34
  console.log(swaggerUi);
29
35
  }
30
36
  $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
31
- addApiKeyAuthorization();
32
37
  },
33
38
  onFailure: function(data) {
34
39
  if('console' in window) {
@@ -41,18 +46,27 @@
41
46
  apisSorter: "alpha"
42
47
  });
43
48
 
44
- function addApiKeyAuthorization() {
49
+ function getApiKeyAuthorization() {
45
50
  var key = $('#input_apiKey')[0].value;
46
51
 
47
52
  if (key && key.trim() != "") {
48
53
  if (options.api_auth == 'basic') {
49
54
  key = "Basic " + Base64.encode(key);
50
55
  } else if (options.api_auth == 'bearer') {
51
- key = "Bearer " + key
56
+ key = "Bearer " + key;
57
+ } else if (options.api_auth == 'token') {
58
+ key = 'Token token="' + key + '"';
52
59
  }
53
- window.swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization(options.api_key_name, key, options.api_key_type));
60
+ return new SwaggerClient.ApiKeyAuthorization(options.api_key_name, key, options.api_key_type);
61
+ }
62
+ }
63
+
64
+ function addApiKeyAuthorization() {
65
+ var apiKeyAuthorization = getApiKeyAuthorization();
66
+ if (apiKeyAuthorization) {
67
+ window.swaggerUi.api.clientAuthorizations.add("key", apiKeyAuthorization);
54
68
  }
55
- }
69
+ }
56
70
 
57
71
  $('#input_apiKey').change(addApiKeyAuthorization);
58
72
 
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_dependency 'railties', '>= 3.2.12'
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.3'
21
+ spec.add_development_dependency 'bundler', '~> 1.15'
22
22
  spec.add_development_dependency 'rake'
23
23
  spec.add_development_dependency 'git'
24
24
  spec.add_development_dependency 'rspec-rails'
@@ -34,7 +34,8 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency 'sprockets'
35
35
  spec.add_development_dependency 'rack', '~> 1.6'
36
36
  spec.add_development_dependency 'rack-cors'
37
- spec.add_development_dependency 'rubocop', '0.33.0'
37
+ spec.add_development_dependency 'rubocop', '0.38.0'
38
38
  spec.add_development_dependency 'mime-types', '< 3.0'
39
39
  spec.add_development_dependency 'rack-no_animations'
40
+ spec.add_development_dependency 'nokogiri', '< 1.7.0'
40
41
  end
@@ -1,3 +1,3 @@
1
1
  module GrapeSwaggerRails
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'.freeze
3
3
  end
@@ -36,7 +36,7 @@ namespace :swagger_ui do
36
36
  'object-assign-pollyfill.js',
37
37
  'swagger-oauth.js',
38
38
  'base64.js'
39
- ]
39
+ ].freeze
40
40
  javascript_files = Dir["#{root}/app/assets/javascripts/grape_swagger_rails/*.js"].map { |f|
41
41
  f.split('/').last
42
42
  } - ['application.js']
@@ -61,7 +61,7 @@ namespace :swagger_ui do
61
61
  CSS_FILES = [
62
62
  'reset.css',
63
63
  'screen.css'
64
- ]
64
+ ].freeze
65
65
  css_files = Dir["#{root}/app/assets/stylesheets/grape_swagger_rails/*.css"].map { |f|
66
66
  f.split('/').last
67
67
  } - ['application.css']
@@ -19,8 +19,8 @@ describe 'Swagger' do
19
19
 
20
20
  it 'evaluates config options correctly' do
21
21
  visit '/swagger'
22
- page_options_json = page.evaluate_script("$('html').data('swagger-options')").to_json
23
- expect(page_options_json).to eq(@options.marshal_dump.to_json)
22
+ page_options = page.evaluate_script("$('html').data('swagger-options')").symbolize_keys
23
+ expect(page_options).to eq(@options.marshal_dump)
24
24
  end
25
25
 
26
26
  context '#headers' do
@@ -49,6 +49,21 @@ describe 'Swagger' do
49
49
  expect(page).to have_css 'span.hljs-string', text: 'Another Value'
50
50
  end
51
51
  end
52
+ context '#api_key_default_value' do
53
+ before do
54
+ GrapeSwaggerRails.options.api_auth = 'bearer'
55
+ GrapeSwaggerRails.options.api_key_name = 'Authorization'
56
+ GrapeSwaggerRails.options.api_key_type = 'header'
57
+ GrapeSwaggerRails.options.api_key_default_value = 'token'
58
+ visit '/swagger'
59
+ end
60
+ it 'adds an Authorization header' do
61
+ headers = page.evaluate_script('swaggerUi.api.clientAuthorizations')['authz']
62
+ last_header = headers.fetch("header_#{headers.length - 1}", {})
63
+ expect(last_header.slice('name', 'value'))
64
+ .to eq('name' => 'Authorization', 'value' => 'Bearer token')
65
+ end
66
+ end
52
67
  context '#api_auth:basic' do
53
68
  before do
54
69
  GrapeSwaggerRails.options.api_auth = 'basic'
@@ -83,6 +98,23 @@ describe 'Swagger' do
83
98
  expect(page).to have_css 'span.hljs-string', text: 'Bearer token'
84
99
  end
85
100
  end
101
+ context '#api_auth:token and #api_key_type:header' do
102
+ before do
103
+ GrapeSwaggerRails.options.api_auth = 'token'
104
+ GrapeSwaggerRails.options.api_key_name = 'Authorization'
105
+ GrapeSwaggerRails.options.api_key_type = 'header'
106
+ visit '/swagger'
107
+ end
108
+ it 'adds an Authorization header' do
109
+ page.execute_script("$('#input_apiKey').val('token')")
110
+ page.execute_script("$('#input_apiKey').trigger('change')")
111
+ find('#endpointListTogger_headers', visible: true).click
112
+ first('span[class="http_method"] a', visible: true).click
113
+ click_button 'Try it out!'
114
+ expect(page).to have_css 'span.hljs-attr', text: 'Authorization'
115
+ expect(page).to have_css 'span.hljs-string', text: 'Token token'
116
+ end
117
+ end
86
118
  context '#api_auth:token' do
87
119
  before do
88
120
  GrapeSwaggerRails.options.api_key_name = 'api_token'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-swagger-rails
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
  - Alexander Logunov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-22 00:00:00.000000000 Z
11
+ date: 2019-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: '1.15'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: '1.15'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -254,14 +254,14 @@ dependencies:
254
254
  requirements:
255
255
  - - '='
256
256
  - !ruby/object:Gem::Version
257
- version: 0.33.0
257
+ version: 0.38.0
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - '='
263
263
  - !ruby/object:Gem::Version
264
- version: 0.33.0
264
+ version: 0.38.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: mime-types
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -290,6 +290,20 @@ dependencies:
290
290
  - - ">="
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: nokogiri
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - "<"
298
+ - !ruby/object:Gem::Version
299
+ version: 1.7.0
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - "<"
305
+ - !ruby/object:Gem::Version
306
+ version: 1.7.0
293
307
  description: Swagger UI as Rails Engine for grape-swagger gem
294
308
  email:
295
309
  - unlovedru@gmail.com
@@ -416,8 +430,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
416
430
  - !ruby/object:Gem::Version
417
431
  version: '0'
418
432
  requirements: []
419
- rubyforge_project:
420
- rubygems_version: 2.6.6
433
+ rubygems_version: 3.0.2
421
434
  signing_key:
422
435
  specification_version: 4
423
436
  summary: Swagger UI as Rails Engine for grape-swagger gem