grape-swagger 0.20.2 → 0.20.3

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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -3
  3. data/.rubocop_todo.yml +43 -33
  4. data/.travis.yml +22 -13
  5. data/CHANGELOG.md +29 -53
  6. data/Gemfile +1 -1
  7. data/README.md +24 -24
  8. data/example/api/endpoints.rb +28 -29
  9. data/example/api/entities.rb +1 -1
  10. data/example/config.ru +5 -7
  11. data/grape-swagger.gemspec +1 -1
  12. data/lib/grape-swagger.rb +9 -6
  13. data/lib/grape-swagger/doc_methods.rb +1 -1
  14. data/lib/grape-swagger/doc_methods/extensions.rb +3 -3
  15. data/lib/grape-swagger/doc_methods/headers.rb +1 -1
  16. data/lib/grape-swagger/doc_methods/move_params.rb +25 -16
  17. data/lib/grape-swagger/doc_methods/operation_id.rb +2 -2
  18. data/lib/grape-swagger/doc_methods/parse_params.rb +12 -5
  19. data/lib/grape-swagger/doc_methods/path_string.rb +1 -1
  20. data/lib/grape-swagger/doc_methods/status_codes.rb +3 -1
  21. data/lib/grape-swagger/doc_methods/tag_name_description.rb +1 -1
  22. data/lib/grape-swagger/endpoint.rb +33 -46
  23. data/lib/grape-swagger/grape/route.rb +16 -0
  24. data/lib/grape-swagger/version.rb +1 -1
  25. data/spec/issues/403_versions_spec.rb +158 -0
  26. data/spec/lib/data_type_spec.rb +9 -10
  27. data/spec/lib/endpoint_spec.rb +1 -2
  28. data/spec/lib/extensions_spec.rb +44 -40
  29. data/spec/lib/move_params_spec.rb +113 -93
  30. data/spec/lib/operation_id_spec.rb +42 -12
  31. data/spec/lib/optional_object_spec.rb +3 -4
  32. data/spec/lib/path_string_spec.rb +2 -2
  33. data/spec/lib/produces_consumes_spec.rb +64 -53
  34. data/spec/markdown/redcarpet_adapter_spec.rb +1 -1
  35. data/spec/spec_helper.rb +1 -1
  36. data/spec/support/api_swagger_v2_result.rb +122 -128
  37. data/spec/support/namespace_tags.rb +17 -19
  38. data/spec/support/the_api_entities.rb +1 -3
  39. data/spec/support/the_paths_definitions.rb +95 -85
  40. data/spec/swagger_v2/api_swagger_v2_definitions-models_spec.rb +1 -1
  41. data/spec/swagger_v2/api_swagger_v2_detail_spec.rb +19 -19
  42. data/spec/swagger_v2/api_swagger_v2_extensions_spec.rb +21 -21
  43. data/spec/swagger_v2/api_swagger_v2_format-content_type_spec.rb +34 -32
  44. data/spec/swagger_v2/api_swagger_v2_global_configuration_spec.rb +5 -7
  45. data/spec/swagger_v2/api_swagger_v2_headers_spec.rb +19 -18
  46. data/spec/swagger_v2/api_swagger_v2_hide_documentation_path_spec.rb +9 -10
  47. data/spec/swagger_v2/api_swagger_v2_mounted_spec.rb +21 -24
  48. data/spec/swagger_v2/api_swagger_v2_param_type_body_nested_spec.rb +90 -92
  49. data/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb +54 -54
  50. data/spec/swagger_v2/api_swagger_v2_param_type_spec.rb +65 -57
  51. data/spec/swagger_v2/api_swagger_v2_request_params_fix_spec.rb +17 -14
  52. data/spec/swagger_v2/api_swagger_v2_response_spec.rb +79 -123
  53. data/spec/swagger_v2/api_swagger_v2_spec.rb +33 -34
  54. data/spec/swagger_v2/api_swagger_v2_type-format_spec.rb +32 -36
  55. data/spec/swagger_v2/boolean_params_spec.rb +1 -1
  56. data/spec/swagger_v2/default_api_spec.rb +26 -29
  57. data/spec/swagger_v2/description_not_initialized.rb +3 -3
  58. data/spec/swagger_v2/float_api_spec.rb +1 -1
  59. data/spec/swagger_v2/form_params_spec.rb +4 -4
  60. data/spec/swagger_v2/hide_api_spec.rb +48 -51
  61. data/spec/swagger_v2/host.rb +1 -1
  62. data/spec/swagger_v2/mounted_target_class_spec.rb +31 -33
  63. data/spec/swagger_v2/namespace_tags_prefix_spec.rb +23 -21
  64. data/spec/swagger_v2/namespace_tags_spec.rb +23 -20
  65. data/spec/swagger_v2/param_type_spec.rb +5 -6
  66. data/spec/swagger_v2/param_values_spec.rb +31 -37
  67. data/spec/swagger_v2/params_array_spec.rb +17 -15
  68. data/spec/swagger_v2/params_hash_spec.rb +17 -15
  69. data/spec/swagger_v2/params_nested_spec.rb +12 -10
  70. data/spec/swagger_v2/reference_entity.rb +9 -9
  71. data/spec/swagger_v2/response_model_spec.rb +58 -62
  72. data/spec/swagger_v2/simple_mounted_api_spec.rb +179 -147
  73. metadata +5 -10
  74. data/spec/params_entity_spec.rb +0 -49
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e7244ce5e2e54fd314fdf08bb3a948aa85c1981
4
- data.tar.gz: c2647e5425cfd200375341daf3ee1f691709863b
3
+ metadata.gz: 2d7b5486e6ee350258521fef6c57ee68169423f0
4
+ data.tar.gz: 105ff9de1347190740ec19228cc5839246758288
5
5
  SHA512:
6
- metadata.gz: ebce21c42bb460babe20f85d0b4e020d111f5c992be70e4b58595cdd6e3efc9e0c7060eca217f32dba61d6e0c422ba9a3243f995cf41fae265076ab0e6298362
7
- data.tar.gz: a6b0ac5ec95360f00a86eeff4107499caa33b2d55c70f243a5132e538945d68d46bae621dd58026a30254d8b005f4e291ca171b50a88bc28d7fe77661d406f59
6
+ metadata.gz: c22549eeab271d9c11100edb328f91707695632ed36ee4ae201e2e716d1526b9285d068035e356dbaea61098d7d5b6f4c11297af27be3b072c20e7a28ade9ebb
7
+ data.tar.gz: d2256e0601621560fb665543731632c2177a16a8b0e0b03c1d5bc356cd5f198b779fd81ae2ffc9fac2ad3445ddc114c76b000d88c14c4c850560cb5ef0c505e3
data/.rubocop.yml CHANGED
@@ -1,8 +1,5 @@
1
1
  AllCops:
2
2
  Exclude:
3
3
  - vendor/**/*
4
- - spec/**/*
5
- - swagger_spec1.2/**/*
6
- - example/**/*
7
4
 
8
5
  inherit_from: .rubocop_todo.yml
data/.rubocop_todo.yml CHANGED
@@ -1,73 +1,83 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2015-08-19 12:17:53 -0400 using RuboCop version 0.33.0.
3
+ # on 2016-05-06 15:08:19 -0400 using RuboCop version 0.39.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
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 10
10
- Metrics/AbcSize:
11
- Max: 176
9
+ # Offense count: 1
10
+ Lint/AmbiguousOperator:
11
+ Exclude:
12
+ - 'spec/lib/move_params_spec.rb'
13
+
14
+ # Offense count: 1
15
+ Lint/UnreachableCode:
16
+ Exclude:
17
+ - 'example/config.ru'
12
18
 
13
19
  # Offense count: 1
20
+ Lint/UselessAssignment:
21
+ Exclude:
22
+ - 'spec/lib/move_params_spec.rb'
23
+
24
+ # Offense count: 27
25
+ Metrics/AbcSize:
26
+ Max: 68
27
+
28
+ # Offense count: 3
14
29
  # Configuration parameters: CountComments.
15
30
  Metrics/ClassLength:
16
- Max: 250
31
+ Max: 234
17
32
 
18
- # Offense count: 6
33
+ # Offense count: 11
19
34
  Metrics/CyclomaticComplexity:
20
- Max: 38
35
+ Max: 16
21
36
 
22
- # Offense count: 304
23
- # Configuration parameters: AllowURI, URISchemes.
37
+ # Offense count: 624
38
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
39
+ # URISchemes: http, https
24
40
  Metrics/LineLength:
25
- Max: 242
41
+ Max: 487
26
42
 
27
- # Offense count: 21
43
+ # Offense count: 33
28
44
  # Configuration parameters: CountComments.
29
45
  Metrics/MethodLength:
30
- Max: 139
46
+ Max: 101
31
47
 
32
- # Offense count: 1
33
- # Configuration parameters: CountComments.
34
- Metrics/ModuleLength:
35
- Max: 200
36
-
37
- # Offense count: 4
48
+ # Offense count: 7
38
49
  Metrics/PerceivedComplexity:
39
- Max: 38
50
+ Max: 19
40
51
 
41
- # Offense count: 8
52
+ # Offense count: 4
42
53
  Style/ClassVars:
43
54
  Exclude:
44
- - 'example/api.rb'
55
+ - 'example/api/endpoints.rb'
45
56
  - 'lib/grape-swagger/doc_methods.rb'
46
57
 
47
- # Offense count: 90
58
+ # Offense count: 24
48
59
  Style/Documentation:
49
60
  Enabled: false
50
61
 
51
- # Offense count: 2
62
+ # Offense count: 1
52
63
  Style/DoubleNegation:
53
64
  Exclude:
65
+ - 'example/api/endpoints.rb'
54
66
 
55
- # Offense count: 3
56
- # Configuration parameters: Exclude.
67
+ # Offense count: 5
68
+ # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts.
57
69
  Style/FileName:
58
70
  Exclude:
59
71
  - 'lib/grape-swagger.rb'
60
- - 'spec/grape-swagger_helper_spec.rb'
61
- - 'spec/grape-swagger_spec.rb'
72
+ - 'spec/swagger_v2/api_swagger_v2_definitions-models_spec.rb'
73
+ - 'spec/swagger_v2/api_swagger_v2_format-content_type_spec.rb'
74
+ - 'spec/swagger_v2/api_swagger_v2_type-format_spec.rb'
75
+ - 'spec/swagger_v2/grape-swagger_spec.rb'
62
76
 
63
- # Offense count: 1
64
- # Configuration parameters: NamePrefix, NamePrefixBlacklist.
65
- Style/PredicateName:
66
- Exclude:
67
-
68
- # Offense count: 4
77
+ # Offense count: 3
69
78
  # Cop supports --auto-correct.
70
79
  # Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
80
+ # SupportedStyles: slashes, percent_r, mixed
71
81
  Style/RegexpLiteral:
72
82
  Exclude:
73
83
  - 'lib/grape-swagger.rb'
data/.travis.yml CHANGED
@@ -2,20 +2,29 @@ language: ruby
2
2
 
3
3
  sudo: false
4
4
 
5
- rvm:
6
- - 2.3.0
7
- - 2.2.3
8
- - 2.1.7
9
- - jruby-19mode
10
- - jruby-9.0.5.0
11
- - rbx-2
12
-
13
5
  matrix:
6
+ include:
7
+ - rvm: 2.3.1
8
+ env: GRAPE_VERSION=0.12.0
9
+ - rvm: 2.3.1
10
+ env: GRAPE_VERSION=0.13.0
11
+ - rvm: 2.3.1
12
+ env: GRAPE_VERSION=0.14.0
13
+ - rvm: 2.3.1
14
+ env: GRAPE_VERSION=0.15.0
15
+ - rvm: 2.3.1
16
+ env: GRAPE_VERSION=0.16.2
17
+ - rvm: 2.3.1
18
+ env: GRAPE_VERSION=HEAD
19
+ - rvm: 2.3.0
20
+ - rvm: 2.2.5
21
+ - rvm: 2.1
22
+ - rvm: rbx-2
23
+ - rvm: jruby-19mode
24
+ - rvm: ruby-head
25
+ - rvm: jruby-head
14
26
  allow_failures:
15
27
  - rvm: rbx-2
16
28
  - rvm: jruby-19mode
17
- env:
18
- - GRAPE_VERSION=0.12.0
19
- - GRAPE_VERSION=0.13.0
20
- - GRAPE_VERSION=0.14.0
21
- # - GRAPE_VERSION=HEAD
29
+ - rvm: ruby-head
30
+ - rvm: jruby-head
data/CHANGELOG.md CHANGED
@@ -1,76 +1,52 @@
1
- ### x.xx.x (next)
1
+ ### 0.20.3 (May 9, 2016)
2
2
 
3
3
  #### Features
4
4
 
5
- #### Fixes
5
+ * [#407](https://github.com/ruby-grape/grape-swagger/issues/407): Added support for Grape 0.15.x and 0.16.x - [@dblock](https://github.com/dblock).
6
+ * [#406](https://github.com/ruby-grape/grape-swagger/pull/406): Force usage of entities for response definition [issue #385](https://github.com/ruby-grape/grape-swagger/issues/385) - [@LeFnord](https://github.com/LeFnord).
7
+ * [#405](https://github.com/ruby-grape/grape-swagger/pull/405), [#403](https://github.com/ruby-grape/grape-swagger/issues/403): Added version support matrix - [@LeFnord](https://github.com/LeFnord).
8
+ * [#408](https://github.com/ruby-grape/grape-swagger/pull/408): Added support for `HEAD` endpoints - [@Bugagazavr](https://github.com/Bugagazavr).
9
+ * [#408](https://github.com/ruby-grape/grape-swagger/pull/411): Added support for `OPTIONS` endpoints - [@Bugagazavr](https://github.com/Bugagazavr).
6
10
 
7
- * [#394](https://github.com/ruby-grape/grape-swagger/pull/394): removes overiding default trough example - [@LeFnord](https://github.com/LeFnord).
8
- * [#393](https://github.com/ruby-grape/grape-swagger/pull/393): properly handle header parameters - [@wleeper](https://github.com/wleeper).
9
- * [#389](https://github.com/ruby-grape/grape-swagger/pull/389): respect X-Forwarded-Host - [@edvakf](https://github.com/edvakf).
11
+ #### Fixes
10
12
 
11
- ### 0.20.1 / 2016-04-17
13
+ * [#399](https://github.com/ruby-grape/grape-swagger/pull/399), [#395](https://github.com/ruby-grape/grape-swagger/issues/395): Make param description optional - [@LeFnord](https://github.com/LeFnord).
12
14
 
13
- #### Features
14
-
15
- * [#382](https://github.com/ruby-grape/grape-swagger/pull/382): make schemes optional - [@wleeper](https://github.com/wleeper).
16
- * [#381](https://github.com/ruby-grape/grape-swagger/pull/381): adding entity property description when property documentation desc option is present - [@elciok](https://github.com/elciok).
15
+ ### 0.20.2 (April 22, 2016)
17
16
 
18
17
  #### Fixes
19
18
 
20
- * [#383](https://github.com/ruby-grape/grape-swagger/pull/383): fixes grape to 0.12.0–0.14.0 - [@LeFnord](https://github.com/LeFnord).
19
+ * [#394](https://github.com/ruby-grape/grape-swagger/pull/394): Removed overiding default through example - [@LeFnord](https://github.com/LeFnord).
20
+ * [#393](https://github.com/ruby-grape/grape-swagger/pull/393): Properly handle header parameters - [@wleeper](https://github.com/wleeper).
21
+ * [#389](https://github.com/ruby-grape/grape-swagger/pull/389): Respect X-Forwarded-Host - [@edvakf](https://github.com/edvakf).
21
22
 
22
- ### 0.20.0 / 2016-04-09
23
+ ### 0.20.1 (April 17, 2016)
23
24
 
24
25
  #### Features
25
26
 
26
- [#371](https://github.com/ruby-grape/grape-swagger/pull/371)
27
-
28
- - adds param type `body` handling
29
-
30
- [#367](https://github.com/ruby-grape/grape-swagger/pull/367)
31
-
32
- - set default `type: Integer` and `required: true` for path params,
33
- if they wasn't specified inside the `params` bloack as required
34
-
35
- [#365](https://github.com/ruby-grape/grape-swagger/pull/365)
36
-
37
- - fixes passing markdown with redcarpet even with nil description and detail
27
+ * [#382](https://github.com/ruby-grape/grape-swagger/pull/382): Made schemes optional - [@wleeper](https://github.com/wleeper).
28
+ * [#381](https://github.com/ruby-grape/grape-swagger/pull/381): Added entity property description when property documentation desc option is present - [@elciok](https://github.com/elciok).
38
29
 
39
- [#358](https://github.com/ruby-grape/grape-swagger/pull/358)
40
-
41
- - removes `allowMultiple` property from params
42
- - adds `format` to definition property
43
- - renames `defaultValue` to `default`
44
-
45
-
46
- [#356](https://github.com/ruby-grape/grape-swagger/pull/356)
47
-
48
- - adds `consumes` setting
49
- - refactoring
50
-
51
- [#354](https://github.com/ruby-grape/grape-swagger/pull/354) some improvements
52
-
53
- - fixes setting of `base_path` and `host`;
54
- - adds possibility to configure the setting of `version` and `base_path` in documented path;
55
- - adds `operationId`
56
-
57
- [#353](https://github.com/ruby-grape/grape-swagger/pull/353) resolves issue #352
30
+ #### Fixes
58
31
 
59
- ### 0.10.4 (Next)
32
+ * [#383](https://github.com/ruby-grape/grape-swagger/pull/383): Fixed support for Grape 0.12.0 through 0.14.0 - [@LeFnord](https://github.com/LeFnord).
60
33
 
61
- [#344](https://github.com/ruby-grape/grape-swagger/pull/) Namespace based tag include in Swagger Json
34
+ ### 0.20.0 (April 9, 2016)
62
35
 
63
- * Namespace based tagging help the swagger GUI to group the API list
36
+ #### Features
64
37
 
65
- ### 0.10.3 (Next)
38
+ * [#336](https://github.com/ruby-grape/grape-swagger/pull/336): Added Swagger 2.0 support - [@LeFnord](https://github.com/LeFnord).
39
+ * [#371](https://github.com/ruby-grape/grape-swagger/pull/371): Added param type `body` handling - [@LeFnord](https://github.com/LeFnord).
40
+ * [#367](https://github.com/ruby-grape/grape-swagger/pull/367): Set default `type: Integer` and `required: true` for path params, if they weren't specified inside the `params` block as required - [@LeFnord](https://github.com/LeFnord).
41
+ * [#365](https://github.com/ruby-grape/grape-swagger/pull/365): Fixed passing markdown with redcarpet even with nil description and detail - [@LeFnord](https://github.com/LeFnord).
42
+ * [#358](https://github.com/ruby-grape/grape-swagger/pull/358): Removed `allowMultiple` property from params, added `format` to definition property and renamed `defaultValue` to `default` - [@LeFnord](https://github.com/LeFnord).
43
+ * [#356](https://github.com/ruby-grape/grape-swagger/pull/356): Added `consumes` - [@LeFnord](https://github.com/LeFnord).
44
+ * [#354](https://github.com/ruby-grape/grape-swagger/pull/354): Fixed setting of `base_path` and `host`, added possibility to configure the setting of `version` and `base_path` in documented path and `operationId` - [@LeFnord](https://github.com/LeFnord).
45
+ * [#353](https://github.com/ruby-grape/grape-swagger/pull/353), [#352](https://github.com/ruby-grape/grape-swagger/pull/353): Fixed exception with routes having a dynamic `:section` - [@LeFnord](https://github.com/LeFnord).
66
46
 
67
- [#336](https://github.com/ruby-grape/grape-swagger/pull/336) changes of swagger-2.0 fork, to support it
47
+ ### 0.10.5 (April 12, 2016)
68
48
 
69
- * updates gems, corrects parameter, which is in array, make rubocop happy
70
- * runs under 2.3
71
- * documents produces of an end-point
72
- * Update api_swagger_v2_format-content_type_spec.rb
73
- * upgrades to grape 0.14.x; grape-entity 0.5.x
49
+ * [#344](https://github.com/ruby-grape/grape-swagger/pull/344): Namespace based tag included in Swagger JSON - [@LeFnord](https://github.com/LeFnord).
74
50
 
75
51
  ### 0.10.2 (August 19, 2015)
76
52
 
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'http://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- case version = ENV['GRAPE_VERSION'] || '<= 0.14.0'
5
+ case version = ENV['GRAPE_VERSION'] || '~> 0.16.2'
6
6
  when 'HEAD'
7
7
  gem 'grape', github: 'ruby-grape/grape'
8
8
  else
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/grape-swagger.svg)](http://badge.fury.io/rb/grape-swagger)
2
- [![Build Status](https://travis-ci.org/ruby-grape/grape-swagger.svg?branch=swagger-2.0)](https://travis-ci.org/ruby-grape/grape-swagger)
2
+ [![Build Status](https://travis-ci.org/ruby-grape/grape-swagger.svg?branch=master)](https://travis-ci.org/ruby-grape/grape-swagger)
3
3
  [![Dependency Status](https://gemnasium.com/ruby-grape/grape-swagger.svg)](https://gemnasium.com/ruby-grape/grape-swagger)
4
4
  [![Code Climate](https://codeclimate.com/github/ruby-grape/grape-swagger.svg)](https://codeclimate.com/github/ruby-grape/grape-swagger)
5
5
 
@@ -41,12 +41,12 @@ These screenshot is based on the [Hussars](https://github.com/LeFnord/hussars) s
41
41
 
42
42
  The following versions of grape, grape-entity and grape-swagger can currently be used together.
43
43
 
44
- grape-swagger | grape | grape-entity
45
- --------------|-------------------------|-------------
46
- 0.10.5 | >= 0.10.0 ... <= 0.14.0 | < 0.5.0
47
- 0.11.0 | >= 0.16.2 | < 0.5.0
48
- 0.20.1 | >= 0.12.0 ... <= 0.14.0 | <= 0.5.1
49
-
44
+ grape-swagger | swagger spec | grape | grape-entity
45
+ --------------|--------------|-------------------------|-------------
46
+ 0.10.5 | 1.2 | >= 0.10.0 ... <= 0.14.0 | < 0.5.0
47
+ 0.11.0 | 1.2 | >= 0.16.2 | < 0.5.0
48
+ 0.20.1 | 2.0 | >= 0.12.0 ... <= 0.14.0 | <= 0.5.1
49
+ 0.20.3 | 2.0 | >= 0.12.0 ... ~> 0.16.2 | ~> 0.5.1
50
50
 
51
51
  <a name="swagger-spec" />
52
52
  ## Swagger-Spec
@@ -123,8 +123,8 @@ end
123
123
  * [mount_path](#mount_path)
124
124
  * [add_base_path](#add_base_path)
125
125
  * [add_version](#add_version)
126
+ * [doc_version](#doc_version)
126
127
  * [markdown](#markdown)
127
- * [api_version](#api_version)
128
128
  * [models](#models)
129
129
  * [hide_documentation_path](#hide_documentation_path)
130
130
  * [info](#info)
@@ -139,15 +139,15 @@ You can pass a hash with optional configuration settings to ```add_swagger_docum
139
139
 
140
140
  <a name="host" />
141
141
  #### host:
142
- Sets explicit the `host`
142
+ Sets explicit the `host`, default would be taken from `request`.
143
143
  ```ruby
144
144
  add_swagger_documentation \
145
- host: 'www.no-example.com'
145
+ host: 'www.example.com'
146
146
  ```
147
147
 
148
148
  <a name="base_path" />
149
149
  #### base_path:
150
- Base path of the API that's being exposed.
150
+ Base path of the API that's being exposed, default would be taken from `request`.
151
151
  ```ruby
152
152
  add_swagger_documentation \
153
153
  base_path: '/super/api'
@@ -155,26 +155,35 @@ add_swagger_documentation \
155
155
 
156
156
  <a name="mount_path" />
157
157
  #### mount_path:
158
- The path where the API documentation is loaded, default is `/swagger_doc`.
158
+ The path where the API documentation is loaded, default is: `/swagger_doc`.
159
159
  ```ruby
160
160
  add_swagger_documentation \
161
161
  mount_path: '/docu'
162
162
  ```
163
163
 
164
164
  #### add_base_path:
165
- Add `basePath` key to the JSON documentation, default is `false`.
165
+ Add `basePath` key to the documented path keys, default is: `false`.
166
166
  ```ruby
167
167
  add_swagger_documentation \
168
168
  add_base_path: true
169
169
  ```
170
170
 
171
171
  #### add_version:
172
- Add `version` key to the JSON documentation, default is `true`.
172
+ Add `version` key to the documented path keys, default is: `true`,
173
+ here the version is the API version, specified by `grape` in [`path`](https://github.com/ruby-grape/grape/#path)
174
+
173
175
  ```ruby
174
176
  add_swagger_documentation \
175
177
  add_version: false
176
178
  ```
177
179
 
180
+ <a name="doc_version" />
181
+ #### doc_version:
182
+ Specify the version of the documentation at [info section](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#info-object), default is: `'0.0.1'`
183
+ ```ruby
184
+ add_swagger_documentation \
185
+ doc_version: '0.0.1'
186
+ ```
178
187
 
179
188
  <a name="markdown" />
180
189
  #### markdown:
@@ -190,15 +199,6 @@ add_swagger_documentation \
190
199
  markdown: GrapeSwagger::Markdown::RedcarpetAdapter.new
191
200
  ```
192
201
 
193
- <a name="api_version" />
194
- #### api_version:
195
- ```ruby
196
- add_swagger_documentation \
197
- api_version: 'v1'
198
- ```
199
-
200
- Version of the API that's being exposed.
201
-
202
202
 
203
203
  #### *authorizations*:
204
204
  This value is added to the `authorizations` key in the JSON documentation.
@@ -459,7 +459,7 @@ end
459
459
 
460
460
  ### Grape Entities
461
461
 
462
- Add the [grape-entity](https://github.com/agileanimal/grape-entity) gem to our Gemfile.
462
+ Add the [grape-entity](https://github.com/agileanimal/grape-entity) gem to your Gemfile.
463
463
 
464
464
  The following example exposes statuses. And exposes statuses documentation adding :type and :desc.
465
465
 
@@ -18,41 +18,40 @@ module Api
18
18
  end
19
19
 
20
20
  class Splines < Grape::API
21
-
22
21
  @@splines = []
23
22
 
24
23
  namespace :splines do
25
24
  #
26
25
  desc 'Get all splines',
27
- is_array: true,
28
- http_codes: [
29
- { code: 200, message: 'get Splines', model: Api::Entities::Splines },
30
- { code: 422, message: 'SplinesOutError' }
31
- ]
26
+ is_array: true,
27
+ http_codes: [
28
+ { code: 200, message: 'get Splines', model: Api::Entities::Splines },
29
+ { code: 422, message: 'SplinesOutError' }
30
+ ]
32
31
  get do
33
32
  present :items, @@splines, with: Entities::Splines
34
33
  end
35
34
 
36
35
  #
37
36
  desc 'Return a spline.',
38
- http_codes: [
39
- { code: 200, message: 'get Splines' },
40
- { code: 422, message: 'SplinesOutError' }
41
- ]
37
+ http_codes: [
38
+ { code: 200, message: 'get Splines' },
39
+ { code: 422, message: 'SplinesOutError' }
40
+ ]
42
41
  params do
43
42
  requires :id, type: Integer, desc: 'Spline id.'
44
43
  end
45
44
  get ':id' do
46
- error!({ code: 422, message: 'SplinesOutError' }) unless @@splines[params[:id] - 1]
45
+ error!(code: 422, message: 'SplinesOutError') unless @@splines[params[:id] - 1]
47
46
 
48
47
  present @@splines[params[:id] - 1], with: Entities::Splines
49
48
  end
50
49
 
51
50
  #
52
51
  desc 'Create a spline.',
53
- http_codes: [
54
- { code: 201, message: 'Spline created', model: Api::Entities::Splines }
55
- ]
52
+ http_codes: [
53
+ { code: 201, message: 'Spline created', model: Api::Entities::Splines }
54
+ ]
56
55
  params do
57
56
  requires :spline, type: Hash do
58
57
  requires :x, type: Numeric
@@ -62,9 +61,9 @@ module Api
62
61
  end
63
62
  post do
64
63
  spline = Spline.new
65
- spline.id = @@splines.size + 1
66
- spline.x = (params[:spline][:x]/params[:spline][:y] || 0.0)
67
- spline.y = (params[:spline][:y]/params[:spline][:x] || 0.0)
64
+ spline.id = @@splines.size + 1
65
+ spline.x = (params[:spline][:x] / params[:spline][:y] || 0.0)
66
+ spline.y = (params[:spline][:y] / params[:spline][:x] || 0.0)
68
67
  spline.reticulated = params[:reticulated]
69
68
 
70
69
  @@splines << spline
@@ -74,10 +73,10 @@ module Api
74
73
 
75
74
  #
76
75
  desc 'Update a spline.',
77
- http_codes: [
78
- { code: 200, message: 'update Splines', model: Api::Entities::Splines },
79
- { code: 422, message: 'SplinesOutError' }
80
- ]
76
+ http_codes: [
77
+ { code: 200, message: 'update Splines', model: Api::Entities::Splines },
78
+ { code: 422, message: 'SplinesOutError' }
79
+ ]
81
80
  params do
82
81
  requires :id, type: Integer, desc: 'Spline id.'
83
82
  optional :spline, type: Hash do
@@ -87,14 +86,14 @@ module Api
87
86
  optional :reticulated, type: Boolean, default: true, desc: 'True if the spline is reticulated.'
88
87
  end
89
88
  put ':id' do
90
- error!({ code: 422, message: 'SplinesOutError' }) unless @@splines[params[:id] - 1]
89
+ error!(code: 422, message: 'SplinesOutError') unless @@splines[params[:id] - 1]
91
90
 
92
91
  update_data = params[:spline]
93
92
  spline = @@splines[params[:id] - 1]
94
93
 
95
94
  spline.reticulated = !!update_data[:reticulated]
96
- spline.x = update_data[:x]/update_data[:y] || 0.0
97
- spline.y = update_data[:y]/update_data[:x] || 0.0
95
+ spline.x = update_data[:x] / update_data[:y] || 0.0
96
+ spline.y = update_data[:y] / update_data[:x] || 0.0
98
97
 
99
98
  present spline, with: Entities::Splines
100
99
  end
@@ -105,10 +104,10 @@ module Api
105
104
  requires :id, type: Integer, desc: 'Spline id.'
106
105
  end
107
106
  delete ':id' do
108
- error!({ code: 422, message: 'SplinesOutError' }) unless @@splines[params[:id] - 1]
107
+ error!(code: 422, message: 'SplinesOutError') unless @@splines[params[:id] - 1]
109
108
 
110
109
  @@splines.delete_at(params[:id] - 1)
111
- { "deleted": params[:id] }
110
+ { 'deleted' => params[:id] }
112
111
  end
113
112
  end
114
113
  end
@@ -116,9 +115,9 @@ module Api
116
115
  class FileAccessor < Grape::API
117
116
  namespace :file do
118
117
  desc 'Update image',
119
- details: "# TEST api for testing uploading\n
120
- # curl --form file=@splines.png http://localhost:9292/file/upload",
121
- content_type: 'application/octet-stream'
118
+ details: "# TEST api for testing uploading\n
119
+ # curl --form file=@splines.png http://localhost:9292/file/upload",
120
+ content_type: 'application/octet-stream'
122
121
  post 'upload' do
123
122
  filename = params[:file][:filename]
124
123
  content_type 'binary', 'application/octet-stream'