Skip to content

Commit 0d8734e

Browse files
jnillaschuster3
authored andcommitted
Feature/options supported submit methods (#57)
* Added the ability to specify supported submit methods for Try It Now! * Updated spec tests. * Updated readme. * Fixed readme a bit. * Cleaniness updates to docs.
1 parent e5cf9d4 commit 0d8734e

File tree

5 files changed

+63
-2
lines changed

5 files changed

+63
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
### 0.2.2 (Next)
22

3-
* Your contribution here
3+
* [#57](https://github.com/ruby-grape/grape-swagger-rails/pull/57): Support Swagger-UI supportedSubmitMethods option - [@ShadowWrathOogles](https://github.com/ShadowWrathOogles).
4+
* Your contribution here.
45

56
### 0.2.1 (May 21, 2016)
67

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,16 @@ See the official Swagger-UI documentation about [SwaggerUi Parameters](https://g
7575
GrapeSwaggerRails.options.doc_expansion = 'list'
7676
```
7777

78+
You can set supportedSubmitMethods with an array of the supported HTTP methods, default is:
79+
```ruby
80+
["get" "post" "put" "delete" "patch"]
81+
```
82+
See the official Swagger-UI documentation about [SwaggerUi Parameters](https://github.com/swagger-api/swagger-ui#parameters).
83+
84+
```ruby
85+
GrapeSwaggerRails.options.supported_submit_methods = ["get"]
86+
```
87+
7888
You can set validatorUrl to your own locally deployed Swagger validator, or disable validation by setting this option to nil.
7989
This is useful to avoid error messages when running Swagger-UI on a server which is not accessible from outside your network.
8090

app/views/grape_swagger_rails/application/index.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
url: options.app_url + options.url,
2020
dom_id: "swagger-ui-container",
2121
supportHeaderParams: true,
22-
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
22+
supportedSubmitMethods: options.supported_submit_methods || [],
2323
authorizations: headers,
2424
onComplete: function(swaggerApi, swaggerUi){
2525
if('console' in window) {

lib/grape-swagger-rails.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def before_filter(&block)
2727
api_key_default_value: '', # Auto populates api_key
2828

2929
doc_expansion: 'none',
30+
supported_submit_methods: %w(get post put delete patch),
3031

3132
before_filter_proc: nil, # Proc used as a controller before filter
3233

spec/features/swagger_spec.rb

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,55 @@
153153
end
154154
end
155155
end
156+
context '#supported_submit_methods' do
157+
context 'set all operations' do
158+
before do
159+
GrapeSwaggerRails.options.supported_submit_methods = %w(get post put delete patch)
160+
visit '/swagger'
161+
end
162+
it 'sets SwaggerUI supportedSubmitMethods with all operations' do
163+
expect(page.evaluate_script('window.swaggerUi.options.supportedSubmitMethods.length')).to eq 5
164+
find('#endpointListTogger_params', visible: true).click
165+
first('span[class="http_method"] a', visible: true).click
166+
expect(page).to have_button('Try it out!', disabled: false)
167+
end
168+
end
169+
context 'set some operations' do
170+
before do
171+
GrapeSwaggerRails.options.supported_submit_methods = ['post']
172+
visit '/swagger'
173+
end
174+
it 'sets SwaggerUI supportedSubmitMethods with some operations' do
175+
expect(page.evaluate_script('window.swaggerUi.options.supportedSubmitMethods.length')).to eq 1
176+
find('#endpointListTogger_params', visible: true).click
177+
first('span[class="http_method"] a', visible: true).click
178+
expect(page).not_to have_button('Try it out!')
179+
end
180+
end
181+
context 'set nil' do
182+
before do
183+
GrapeSwaggerRails.options.supported_submit_methods = nil
184+
visit '/swagger'
185+
end
186+
it 'clears SwaggerUI supportedSubmitMethods' do
187+
expect(page.evaluate_script('window.swaggerUi.options.supportedSubmitMethods.length')).to eq 0
188+
find('#endpointListTogger_params', visible: true).click
189+
first('span[class="http_method"] a', visible: true).click
190+
expect(page).not_to have_button('Try it out!')
191+
end
192+
end
193+
context 'not set' do
194+
before do
195+
visit '/swagger'
196+
end
197+
it 'defaults SwaggerUI supportedSubmitMethods' do
198+
expect(page.evaluate_script('window.swaggerUi.options.supportedSubmitMethods.length')).to eq 5
199+
find('#endpointListTogger_params', visible: true).click
200+
first('span[class="http_method"] a', visible: true).click
201+
expect(page).to have_button('Try it out!', disabled: false)
202+
end
203+
end
204+
end
156205
context '#validator_url' do
157206
context 'set null' do
158207
before do

0 commit comments

Comments
 (0)