apipie-rails 0.5.19 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +57 -0
  3. data/CHANGELOG.md +40 -0
  4. data/README.rst +25 -5
  5. data/apipie-rails.gemspec +3 -2
  6. data/app/controllers/apipie/apipies_controller.rb +1 -1
  7. data/app/public/apipie/javascripts/bundled/bootstrap-collapse.js +70 -41
  8. data/app/public/apipie/javascripts/bundled/bootstrap.js +1033 -479
  9. data/app/public/apipie/javascripts/bundled/jquery.js +5 -5
  10. data/app/public/apipie/stylesheets/bundled/bootstrap-responsive.min.css +9 -12
  11. data/app/public/apipie/stylesheets/bundled/bootstrap.min.css +9 -689
  12. data/config/locales/ko.yml +31 -0
  13. data/gemfiles/Gemfile.rails50 +10 -0
  14. data/gemfiles/Gemfile.rails51 +10 -0
  15. data/gemfiles/Gemfile.rails52 +10 -0
  16. data/gemfiles/Gemfile.rails60 +17 -0
  17. data/gemfiles/Gemfile.rails61 +17 -0
  18. data/lib/apipie/configuration.rb +8 -3
  19. data/lib/apipie/dsl_definition.rb +12 -1
  20. data/lib/apipie/extractor/recorder.rb +3 -2
  21. data/lib/apipie/param_description.rb +8 -4
  22. data/lib/apipie/static_dispatcher.rb +3 -1
  23. data/lib/apipie/swagger_generator.rb +7 -1
  24. data/lib/apipie/validator.rb +1 -1
  25. data/lib/apipie/version.rb +1 -1
  26. data/lib/apipie-rails.rb +0 -4
  27. data/rel-eng/gem_release.ipynb +41 -9
  28. data/spec/controllers/apipies_controller_spec.rb +25 -0
  29. data/spec/controllers/users_controller_spec.rb +23 -0
  30. data/spec/dummy/app/controllers/users_controller.rb +6 -0
  31. data/spec/dummy/config/application.rb +0 -3
  32. data/spec/dummy/config/environments/development.rb +0 -3
  33. data/spec/dummy/config/environments/production.rb +0 -3
  34. data/spec/dummy/config/environments/test.rb +0 -5
  35. data/spec/lib/file_handler_spec.rb +7 -0
  36. data/spec/lib/param_description_spec.rb +68 -0
  37. data/spec/lib/swagger/rake_swagger_spec.rb +15 -0
  38. data/spec/lib/swagger/response_validation_spec.rb +17 -17
  39. data/spec/spec_helper.rb +7 -1
  40. data/spec/support/rails-42-ruby-26.rb +15 -0
  41. metadata +30 -97
  42. data/.travis.yml +0 -41
  43. data/Gemfile +0 -1
  44. data/Gemfile.rails41 +0 -7
  45. data/Gemfile.rails42 +0 -14
  46. data/Gemfile.rails50 +0 -9
  47. data/Gemfile.rails51 +0 -9
  48. data/Gemfile.rails60 +0 -10
  49. data/Gemfile.rails61 +0 -10
@@ -10,78 +10,78 @@ RSpec.describe PetsController, :type => :controller do
10
10
  end
11
11
 
12
12
  it "does not raise error when rendered output matches the described response" do
13
- response = get :return_and_validate_expected_response, {format: :json}
13
+ response = get :return_and_validate_expected_response, format: :json
14
14
  expect(response).to match_declared_responses
15
15
  end
16
16
 
17
17
  it "does not raise error when rendered output (array) matches the described response" do
18
- response = get :return_and_validate_expected_array_response, {format: :json}
18
+ response = get :return_and_validate_expected_array_response, format: :json
19
19
  expect(response).to match_declared_responses
20
20
  end
21
21
 
22
22
  it "does not raises error when rendered output includes null in the response" do
23
- response = get :return_and_validate_expected_response_with_null, {format: :json}
23
+ response = get :return_and_validate_expected_response_with_null, format: :json
24
24
  expect(response).to match_declared_responses
25
25
  end
26
26
 
27
27
  it "does not raise error when rendered output includes null (instead of an object) in the response" do
28
- response = get :return_and_validate_expected_response_with_null_object, {format: :json}
28
+ response = get :return_and_validate_expected_response_with_null_object, format: :json
29
29
  expect(response).to match_declared_responses
30
30
  end
31
31
 
32
32
  it "raises error when a response field has the wrong type" do
33
- response = get :return_and_validate_type_mismatch, {format: :json}
33
+ response = get :return_and_validate_type_mismatch, format: :json
34
34
  expect(response).not_to match_declared_responses
35
35
  end
36
36
 
37
37
  it "raises error when a response has a missing field" do
38
- response = get :return_and_validate_missing_field, {format: :json}
38
+ response = get :return_and_validate_missing_field, format: :json
39
39
  expect(response).not_to match_declared_responses
40
40
  end
41
41
 
42
42
  it "raises error when a response has an extra property and 'swagger_allow_additional_properties_in_response' is false" do
43
- response = get :return_and_validate_extra_property, {format: :json}
43
+ response = get :return_and_validate_extra_property, format: :json
44
44
  expect(response).not_to match_declared_responses
45
45
  end
46
46
 
47
47
  it "raises error when a response has is array instead of object" do
48
48
  # note: this action returns HTTP 201, not HTTP 200!
49
- response = get :return_and_validate_unexpected_array_response, {format: :json}
49
+ response = get :return_and_validate_unexpected_array_response, format: :json
50
50
  expect(response).not_to match_declared_responses
51
51
  end
52
52
 
53
53
  it "does not raise error when a response has an extra property and 'swagger_allow_additional_properties_in_response' is true" do
54
54
  Apipie.configuration.swagger_allow_additional_properties_in_response = true
55
- response = get :return_and_validate_extra_property, {format: :json}
55
+ response = get :return_and_validate_extra_property, format: :json
56
56
  expect(response).to match_declared_responses
57
57
  end
58
58
 
59
59
  it "does not raise error when a response has an extra field and 'additional_properties' is specified in the response" do
60
60
  Apipie.configuration.swagger_allow_additional_properties_in_response = false
61
- response = get :return_and_validate_allowed_extra_property, {format: :json}
61
+ response = get :return_and_validate_allowed_extra_property, format: :json
62
62
  expect(response).to match_declared_responses
63
63
  end
64
64
 
65
65
  it "raises error when a response sub-object has an extra field and 'additional_properties' is not specified on it, but specified on the top level of the response" do
66
66
  Apipie.configuration.swagger_allow_additional_properties_in_response = false
67
- response = get :sub_object_invalid_extra_property, {format: :json}
67
+ response = get :sub_object_invalid_extra_property, format: :json
68
68
  expect(response).not_to match_declared_responses
69
69
  end
70
70
 
71
- it "does not rais error when a response sub-object has an extra field and 'additional_properties' is specified on it" do
71
+ it "does not raise error when a response sub-object has an extra field and 'additional_properties' is specified on it" do
72
72
  Apipie.configuration.swagger_allow_additional_properties_in_response = false
73
- response = get :sub_object_allowed_extra_property, {format: :json}
73
+ response = get :sub_object_allowed_extra_property, format: :json
74
74
  expect(response).to match_declared_responses
75
75
  end
76
76
 
77
77
  describe "auto validation" do
78
78
  auto_validate_rendered_views
79
79
  it "raises exception when a response field has the wrong type and auto validation is turned on" do
80
- expect { get :return_and_validate_type_mismatch, {format: :json} }.to raise_error(Apipie::ResponseDoesNotMatchSwaggerSchema)
80
+ expect { get :return_and_validate_type_mismatch, format: :json }.to raise_error(Apipie::ResponseDoesNotMatchSwaggerSchema)
81
81
  end
82
82
 
83
83
  it "does not raise an exception when calling an undocumented method" do
84
- expect { get :undocumented_method, {format: :json} }.not_to raise_error
84
+ expect { get :undocumented_method, format: :json }.not_to raise_error
85
85
  end
86
86
 
87
87
  end
@@ -89,12 +89,12 @@ RSpec.describe PetsController, :type => :controller do
89
89
 
90
90
  describe "with array field" do
91
91
  it "no error for valid response" do
92
- response = get :returns_response_with_valid_array, {format: :json}
92
+ response = get :returns_response_with_valid_array, format: :json
93
93
  expect(response).to match_declared_responses
94
94
  end
95
95
 
96
96
  it "error if type of element in the array is wrong" do
97
- response = get :returns_response_with_invalid_array, {format: :json}
97
+ response = get :returns_response_with_invalid_array, format: :json
98
98
  expect(response).not_to match_declared_responses
99
99
  end
100
100
  end
data/spec/spec_helper.rb CHANGED
@@ -13,7 +13,13 @@ require 'test_engine'
13
13
  module Rails4Compatibility
14
14
  module Testing
15
15
  def process(*args)
16
- compatible_request(*args) { |*new_args| super(*new_args) }
16
+ compatible_request(*args) do |*new_args|
17
+ if Gem.ruby_version < Gem::Version.new('3.0.0')
18
+ super(*new_args)
19
+ else
20
+ super(new_args[0], **new_args[1])
21
+ end
22
+ end
17
23
  end
18
24
 
19
25
  def compatible_request(method, action, hash = {})
@@ -0,0 +1,15 @@
1
+ if RUBY_VERSION >= '2.6.0'
2
+ if Rails.version < '5'
3
+ # rubocop:disable Style/CommentAnnotation
4
+ class ActionController::TestResponse < ActionDispatch::TestResponse
5
+ def recycle!
6
+ # hack to avoid MonitorMixin double-initialize error:
7
+ @mon_mutex_owner_object_id = nil
8
+ @mon_mutex = nil
9
+ initialize
10
+ end
11
+ end
12
+ # rubocop:enable Style/CommentAnnotation
13
+ end
14
+ end
15
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apipie-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.19
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Pokorny
@@ -9,22 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-07-25 00:00:00.000000000 Z
12
+ date: 2022-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
15
+ name: actionpack
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.1'
20
+ version: '5.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '4.1'
27
+ version: '5.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '5.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '5.0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: rspec-rails
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -145,18 +159,11 @@ executables: []
145
159
  extensions: []
146
160
  extra_rdoc_files: []
147
161
  files:
162
+ - ".github/workflows/build.yml"
148
163
  - ".gitignore"
149
164
  - ".rspec"
150
- - ".travis.yml"
151
165
  - APACHE-LICENSE-2.0
152
166
  - CHANGELOG.md
153
- - Gemfile
154
- - Gemfile.rails41
155
- - Gemfile.rails42
156
- - Gemfile.rails50
157
- - Gemfile.rails51
158
- - Gemfile.rails60
159
- - Gemfile.rails61
160
167
  - MIT-LICENSE
161
168
  - NOTICE
162
169
  - PROPOSAL_FOR_RESPONSE_DESCRIPTIONS.md
@@ -197,12 +204,18 @@ files:
197
204
  - config/locales/fr.yml
198
205
  - config/locales/it.yml
199
206
  - config/locales/ja.yml
207
+ - config/locales/ko.yml
200
208
  - config/locales/pl.yml
201
209
  - config/locales/pt-BR.yml
202
210
  - config/locales/ru.yml
203
211
  - config/locales/tr.yml
204
212
  - config/locales/zh-CN.yml
205
213
  - config/locales/zh-TW.yml
214
+ - gemfiles/Gemfile.rails50
215
+ - gemfiles/Gemfile.rails51
216
+ - gemfiles/Gemfile.rails52
217
+ - gemfiles/Gemfile.rails60
218
+ - gemfiles/Gemfile.rails61
206
219
  - images/screenshot-1.png
207
220
  - images/screenshot-2.png
208
221
  - lib/apipie-rails.rb
@@ -324,6 +337,7 @@ files:
324
337
  - spec/lib/validator_spec.rb
325
338
  - spec/lib/validators/array_validator_spec.rb
326
339
  - spec/spec_helper.rb
340
+ - spec/support/rails-42-ruby-26.rb
327
341
  - spec/support/rake.rb
328
342
  homepage: http://github.com/Apipie/apipie-rails
329
343
  licenses: []
@@ -336,96 +350,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
336
350
  requirements:
337
351
  - - ">="
338
352
  - !ruby/object:Gem::Version
339
- version: 2.0.0
353
+ version: 2.6.0
340
354
  required_rubygems_version: !ruby/object:Gem::Requirement
341
355
  requirements:
342
356
  - - ">="
343
357
  - !ruby/object:Gem::Version
344
358
  version: '0'
345
359
  requirements: []
346
- rubygems_version: 3.1.2
360
+ rubygems_version: 3.1.6
347
361
  signing_key:
348
362
  specification_version: 4
349
363
  summary: Rails REST API documentation tool
350
- test_files:
351
- - spec/controllers/api/v1/architectures_controller_spec.rb
352
- - spec/controllers/api/v2/architectures_controller_spec.rb
353
- - spec/controllers/api/v2/nested/resources_controller_spec.rb
354
- - spec/controllers/apipies_controller_spec.rb
355
- - spec/controllers/concerns_controller_spec.rb
356
- - spec/controllers/extended_controller_spec.rb
357
- - spec/controllers/memes_controller_spec.rb
358
- - spec/controllers/users_controller_spec.rb
359
- - spec/dummy/Rakefile
360
- - spec/dummy/app/controllers/api/base_controller.rb
361
- - spec/dummy/app/controllers/api/v1/architectures_controller.rb
362
- - spec/dummy/app/controllers/api/v1/base_controller.rb
363
- - spec/dummy/app/controllers/api/v2/architectures_controller.rb
364
- - spec/dummy/app/controllers/api/v2/base_controller.rb
365
- - spec/dummy/app/controllers/api/v2/nested/architectures_controller.rb
366
- - spec/dummy/app/controllers/api/v2/nested/resources_controller.rb
367
- - spec/dummy/app/controllers/application_controller.rb
368
- - spec/dummy/app/controllers/concerns/extending_concern.rb
369
- - spec/dummy/app/controllers/concerns/sample_controller.rb
370
- - spec/dummy/app/controllers/concerns_controller.rb
371
- - spec/dummy/app/controllers/extended_controller.rb
372
- - spec/dummy/app/controllers/files_controller.rb
373
- - spec/dummy/app/controllers/overridden_concerns_controller.rb
374
- - spec/dummy/app/controllers/pets_controller.rb
375
- - spec/dummy/app/controllers/pets_using_auto_views_controller.rb
376
- - spec/dummy/app/controllers/pets_using_self_describing_classes_controller.rb
377
- - spec/dummy/app/controllers/tagged_cats_controller.rb
378
- - spec/dummy/app/controllers/tagged_dogs_controller.rb
379
- - spec/dummy/app/controllers/twitter_example_controller.rb
380
- - spec/dummy/app/controllers/users_controller.rb
381
- - spec/dummy/app/views/layouts/application.html.erb
382
- - spec/dummy/components/test_engine/Gemfile
383
- - spec/dummy/components/test_engine/app/controllers/test_engine/application_controller.rb
384
- - spec/dummy/components/test_engine/app/controllers/test_engine/memes_controller.rb
385
- - spec/dummy/components/test_engine/config/routes.rb
386
- - spec/dummy/components/test_engine/db/.gitkeep
387
- - spec/dummy/components/test_engine/lib/test_engine.rb
388
- - spec/dummy/components/test_engine/test_engine.gemspec
389
- - spec/dummy/config.ru
390
- - spec/dummy/config/application.rb
391
- - spec/dummy/config/boot.rb
392
- - spec/dummy/config/database.yml
393
- - spec/dummy/config/environment.rb
394
- - spec/dummy/config/environments/development.rb
395
- - spec/dummy/config/environments/production.rb
396
- - spec/dummy/config/environments/test.rb
397
- - spec/dummy/config/initializers/apipie.rb
398
- - spec/dummy/config/initializers/backtrace_silencers.rb
399
- - spec/dummy/config/initializers/inflections.rb
400
- - spec/dummy/config/initializers/mime_types.rb
401
- - spec/dummy/config/initializers/secret_token.rb
402
- - spec/dummy/config/initializers/session_store.rb
403
- - spec/dummy/config/locales/en.yml
404
- - spec/dummy/config/routes.rb
405
- - spec/dummy/db/.gitkeep
406
- - spec/dummy/doc/apipie_examples.json
407
- - spec/dummy/doc/users/desc_from_file.md
408
- - spec/dummy/public/404.html
409
- - spec/dummy/public/422.html
410
- - spec/dummy/public/500.html
411
- - spec/dummy/public/favicon.ico
412
- - spec/dummy/public/stylesheets/.gitkeep
413
- - spec/dummy/script/rails
414
- - spec/lib/application_spec.rb
415
- - spec/lib/extractor/extractor_spec.rb
416
- - spec/lib/extractor/middleware_spec.rb
417
- - spec/lib/extractor/writer_spec.rb
418
- - spec/lib/file_handler_spec.rb
419
- - spec/lib/method_description_spec.rb
420
- - spec/lib/param_description_spec.rb
421
- - spec/lib/param_group_spec.rb
422
- - spec/lib/rake_spec.rb
423
- - spec/lib/resource_description_spec.rb
424
- - spec/lib/swagger/openapi_2_0_schema.json
425
- - spec/lib/swagger/rake_swagger_spec.rb
426
- - spec/lib/swagger/response_validation_spec.rb
427
- - spec/lib/swagger/swagger_dsl_spec.rb
428
- - spec/lib/validator_spec.rb
429
- - spec/lib/validators/array_validator_spec.rb
430
- - spec/spec_helper.rb
431
- - spec/support/rake.rb
364
+ test_files: []
data/.travis.yml DELETED
@@ -1,41 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- before_install: >-
4
- if ruby -v | grep 'ruby 2.2'; then
5
- gem install bundler -v '~> 1.17'
6
- fi
7
- rvm:
8
- - 2.2.10
9
- - 2.3.8
10
- - 2.4.5
11
- - 2.5.3
12
- - 2.6.5
13
- - 2.7.0
14
- gemfile:
15
- - Gemfile.rails42
16
- - Gemfile.rails51 # Min ruby 2.2.2
17
- - Gemfile.rails60 # Min ruby 2.5.0
18
- - Gemfile.rails61 # Min ruby 2.5.0
19
-
20
- matrix:
21
- exclude:
22
- - rvm: 2.5.3
23
- gemfile: Gemfile.rails42
24
- - rvm: 2.6.5
25
- gemfile: Gemfile.rails42
26
- - rvm: 2.7.0
27
- gemfile: Gemfile.rails42
28
- - rvm: 2.7.0
29
- gemfile: Gemfile.rails51
30
- - rvm: 2.2.10
31
- gemfile: Gemfile.rails60
32
- - rvm: 2.3.8
33
- gemfile: Gemfile.rails60
34
- - rvm: 2.4.5
35
- gemfile: Gemfile.rails60
36
- - rvm: 2.2.10
37
- gemfile: Gemfile.rails61
38
- - rvm: 2.3.8
39
- gemfile: Gemfile.rails61
40
- - rvm: 2.4.5
41
- gemfile: Gemfile.rails61
data/Gemfile DELETED
@@ -1 +0,0 @@
1
- ./Gemfile.rails61
data/Gemfile.rails41 DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.1.0'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails42 DELETED
@@ -1,14 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.2.5'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'sqlite3', '~> 1.3.6'
8
-
9
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
10
- gem 'nokogiri', '~> 1.6.8'
11
- gem 'rdoc', '~> 4.2.2'
12
- end
13
-
14
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails50 DELETED
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.0.0'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
-
9
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails51 DELETED
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.1.0.rc1'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
-
9
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails60 DELETED
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 6.0.2'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
- gem 'rspec-rails', '4.0.0.beta3'
9
-
10
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails61 DELETED
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 6.1.1'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
- gem 'rspec-rails', '~> 4.0.2'
9
-
10
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test