apipie-rails 1.2.3 → 1.4.0

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +5 -4
  3. data/.github/workflows/rubocop-challenger.yml +1 -3
  4. data/.github/workflows/rubocop.yml +1 -1
  5. data/.rubocop_todo.yml +22 -28
  6. data/CHANGELOG.md +22 -0
  7. data/Gemfile +2 -3
  8. data/README.md +2088 -0
  9. data/apipie-rails.gemspec +7 -1
  10. data/app/views/apipie/apipies/_method_detail.erb +2 -0
  11. data/app/views/apipie/apipies/_params.html.erb +1 -0
  12. data/app/views/apipie/apipies/_params_plain.html.erb +1 -0
  13. data/config/locales/en.yml +1 -0
  14. data/config/locales/ko.yml +1 -0
  15. data/lib/apipie/application.rb +1 -1
  16. data/lib/apipie/dsl_definition.rb +10 -11
  17. data/lib/apipie/errors.rb +1 -1
  18. data/lib/apipie/extractor/collector.rb +1 -1
  19. data/lib/apipie/extractor/recorder.rb +1 -1
  20. data/lib/apipie/extractor/writer.rb +2 -2
  21. data/lib/apipie/generator/swagger/config.rb +1 -1
  22. data/lib/apipie/generator/swagger/method_description/parameters_service.rb +1 -1
  23. data/lib/apipie/generator/swagger/method_description/response_service.rb +14 -1
  24. data/lib/apipie/generator/swagger/param_description/builder.rb +9 -0
  25. data/lib/apipie/generator/swagger/param_description/type.rb +15 -2
  26. data/lib/apipie/generator/swagger/resource_description_collection.rb +2 -2
  27. data/lib/apipie/param_description.rb +1 -1
  28. data/lib/apipie/response_description.rb +34 -9
  29. data/lib/apipie/response_description_adapter.rb +3 -3
  30. data/lib/apipie/routes_formatter.rb +1 -1
  31. data/lib/apipie/static_dispatcher.rb +7 -1
  32. data/lib/apipie/version.rb +1 -1
  33. data/lib/tasks/apipie.rake +3 -3
  34. data/rel-eng/gem_release.ipynb +5 -5
  35. data/spec/controllers/users_controller_spec.rb +1 -1
  36. data/spec/dummy/app/controllers/api/v2/empty_middle_controller.rb +1 -1
  37. data/spec/dummy/app/controllers/pets_controller.rb +2 -2
  38. data/spec/dummy/app/controllers/twitter_example_controller.rb +3 -3
  39. data/spec/lib/apipie/apipies_controller_spec.rb +1 -1
  40. data/spec/lib/apipie/extractor_spec.rb +1 -1
  41. data/spec/lib/apipie/file_handler_spec.rb +1 -1
  42. data/spec/lib/apipie/generator/swagger/method_description/response_schema_service_spec.rb +6 -6
  43. data/spec/lib/apipie/generator/swagger/method_description/response_service_spec.rb +62 -0
  44. data/spec/lib/apipie/generator/swagger/param_description/builder_spec.rb +14 -2
  45. data/spec/lib/apipie/generator/swagger/param_description/type_spec.rb +6 -1
  46. data/spec/lib/apipie/param_description_spec.rb +1 -1
  47. data/spec/lib/apipie/response_description/response_object_spec.rb +22 -0
  48. data/spec/lib/apipie/response_description_spec.rb +56 -0
  49. data/spec/lib/apipie/swagger_generator_spec.rb +2 -2
  50. data/spec/lib/swagger/rake_swagger_spec.rb +6 -1
  51. data/spec/lib/swagger/swagger_dsl_spec.rb +1 -1
  52. data/spec/spec_helper.rb +1 -1
  53. metadata +12 -6
  54. data/README.rst +0 -1965
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 589dc3b1a0a39f1b2fae7fa811e27969b3f8de5c6eb2e187ca1c61e3d77edd5a
4
- data.tar.gz: b99b476c03dadcce53f6fe2c4e712a9e6a30960762de9fead0b755ef3d6ebee2
3
+ metadata.gz: ad4ac03f9bd83b8517dacdc1827c821bf9413649984eb84dee775ce7972a9e7d
4
+ data.tar.gz: 4dfa2be9dcc9ac7aab06b930164beb1eede84351c1f9a0eef23aef6e224985cb
5
5
  SHA512:
6
- metadata.gz: 765673e5c7ca984ad30d1d1f815f583f92d3f9dfdd595228c74e73b9fac3fd0e60260f65e6f9e8eb6b19f24de1f8b814cb917f38bf312ec8a30c52b8e1eea901
7
- data.tar.gz: 3afe26c57541633e04017eb022f4f526ed08c22b4d1a2ad7ca44364a49ce88f5e868e1651a468e5d0707325bf4abdc2fc15c1bbc8bebae0bc288b795ac6f0848
6
+ metadata.gz: 98af0fe369f7b730c7dbf5a40d8c63e67ae2ca0f5b201ad4510827090a634cb30965dd5c737b46c26bd1e2084153481671e606ee970a814c859277a3eacadd2c
7
+ data.tar.gz: 5db3aef55422e20fc2b5bcafd2df97daf2ee10a0c09947b77791f614665615d8a607e393a76a72bdbb5f718ff879b048ab49fb49edebd70376fe284d5cb2967a
@@ -8,9 +8,11 @@ jobs:
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- rails: ["7.0", "6.1", "6.0"]
12
- ruby: ["3.2.2", "3.1.4", "3.0.6", "2.7.8"]
11
+ rails: ["7.1", "7.0", "6.1", "6.0"]
12
+ ruby: ["3.3", "3.2", "3.1", "3.0", "2.7"]
13
13
  include:
14
+ - rails: "7.1"
15
+ ruby: "3.4.0-preview1"
14
16
  - rails: "5.2"
15
17
  ruby: "2.7.8"
16
18
  - rails: "5.1"
@@ -19,11 +21,10 @@ jobs:
19
21
  ruby: "2.6.10"
20
22
 
21
23
  env:
22
- RUBY_VERSION: ${{ matrix.ruby }}
23
24
  RAILS_VERSION: ${{ matrix.rails }}
24
25
 
25
26
  steps:
26
- - uses: actions/checkout@v2
27
+ - uses: actions/checkout@v4
27
28
  - uses: ruby/setup-ruby@v1
28
29
  with:
29
30
  ruby-version: ${{ matrix.ruby }}
@@ -8,10 +8,8 @@ jobs:
8
8
  create-pr:
9
9
  name: Create Pull Request
10
10
  runs-on: ubuntu-latest
11
- env:
12
- BUNDLE_GEMFILE: gemfiles/Gemfile.rails50
13
11
  steps:
14
- - uses: actions/checkout@v2
12
+ - uses: actions/checkout@v4
15
13
  - name: Set up Ruby 3.2
16
14
  uses: ruby/setup-ruby@v1
17
15
  with:
@@ -6,7 +6,7 @@ jobs:
6
6
  build:
7
7
  runs-on: ubuntu-latest
8
8
  steps:
9
- - uses: actions/checkout@v3
9
+ - uses: actions/checkout@v4
10
10
 
11
11
  - name: Set up Ruby 3.2
12
12
  uses: ruby/setup-ruby@v1
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config --exclude-limit 180`
3
- # on 2023-06-09 05:29:05 UTC using RuboCop version 1.52.0.
2
+ # `rubocop --auto-gen-config --exclude-limit 200`
3
+ # on 2023-10-11 12:02:42 UTC using RuboCop version 1.57.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
@@ -118,7 +118,7 @@ Layout/ElseAlignment:
118
118
  - 'lib/apipie/param_description.rb'
119
119
  - 'lib/apipie/resource_description.rb'
120
120
 
121
- # Offense count: 58
121
+ # Offense count: 59
122
122
  # This cop supports safe autocorrection (--autocorrect).
123
123
  Layout/EmptyLineAfterGuardClause:
124
124
  Exclude:
@@ -140,7 +140,7 @@ Layout/EmptyLineAfterGuardClause:
140
140
 
141
141
  # Offense count: 13
142
142
  # This cop supports safe autocorrection (--autocorrect).
143
- # Configuration parameters: EmptyLineBetweenMethodDefs, EmptyLineBetweenClassDefs, EmptyLineBetweenModuleDefs, AllowAdjacentOneLineDefs, NumberOfEmptyLines.
143
+ # Configuration parameters: EmptyLineBetweenMethodDefs, EmptyLineBetweenClassDefs, EmptyLineBetweenModuleDefs, DefLikeMacros, AllowAdjacentOneLineDefs, NumberOfEmptyLines.
144
144
  Layout/EmptyLineBetweenDefs:
145
145
  Exclude:
146
146
  - 'app/controllers/apipie/apipies_controller.rb'
@@ -597,14 +597,13 @@ Layout/SpaceInsideParens:
597
597
  - 'spec/lib/apipie/method_description/apis_service_spec.rb'
598
598
  - 'spec/lib/swagger/swagger_dsl_spec.rb'
599
599
 
600
- # Offense count: 15
600
+ # Offense count: 14
601
601
  # This cop supports safe autocorrection (--autocorrect).
602
602
  # Configuration parameters: EnforcedStyle.
603
603
  # SupportedStyles: final_newline, final_blank_line
604
604
  Layout/TrailingEmptyLines:
605
605
  Exclude:
606
606
  - 'Rakefile'
607
- - 'lib/apipie/extractor/collector.rb'
608
607
  - 'lib/apipie/method_description/apis_service.rb'
609
608
  - 'lib/apipie/rspec/response_validation_helper.rb'
610
609
  - 'spec/controllers/concerns_controller_spec.rb'
@@ -778,23 +777,17 @@ Lint/Void:
778
777
  Exclude:
779
778
  - 'spec/controllers/users_controller_spec.rb'
780
779
 
781
- # Offense count: 58
780
+ # Offense count: 60
782
781
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
783
782
  Metrics/AbcSize:
784
783
  Max: 96
785
784
 
786
- # Offense count: 1
787
- # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
788
- # AllowedMethods: refine
789
- Metrics/BlockLength:
790
- Max: 26
791
-
792
- # Offense count: 4
785
+ # Offense count: 3
793
786
  # Configuration parameters: CountBlocks.
794
787
  Metrics/BlockNesting:
795
788
  Max: 4
796
789
 
797
- # Offense count: 24
790
+ # Offense count: 25
798
791
  # Configuration parameters: AllowedMethods, AllowedPatterns.
799
792
  Metrics/CyclomaticComplexity:
800
793
  Max: 24
@@ -807,7 +800,7 @@ Metrics/MethodLength:
807
800
  # Offense count: 1
808
801
  # Configuration parameters: CountComments, CountAsOne.
809
802
  Metrics/ModuleLength:
810
- Max: 101
803
+ Max: 119
811
804
 
812
805
  # Offense count: 4
813
806
  # Configuration parameters: CountKeywordArgs.
@@ -815,7 +808,7 @@ Metrics/ParameterLists:
815
808
  MaxOptionalParameters: 5
816
809
  Max: 6
817
810
 
818
- # Offense count: 20
811
+ # Offense count: 21
819
812
  # Configuration parameters: AllowedMethods, AllowedPatterns.
820
813
  Metrics/PerceivedComplexity:
821
814
  Max: 25
@@ -961,7 +954,7 @@ RSpec/Be:
961
954
  - 'spec/controllers/concerns_controller_spec.rb'
962
955
  - 'spec/controllers/users_controller_spec.rb'
963
956
 
964
- # Offense count: 59
957
+ # Offense count: 60
965
958
  # This cop supports unsafe autocorrection (--autocorrect-all).
966
959
  RSpec/BeEq:
967
960
  Exclude:
@@ -1054,7 +1047,7 @@ RSpec/EmptyLineAfterHook:
1054
1047
  Exclude:
1055
1048
  - 'spec/lib/apipie/apipies_controller_spec.rb'
1056
1049
 
1057
- # Offense count: 51
1050
+ # Offense count: 52
1058
1051
  # Configuration parameters: CountAsOne.
1059
1052
  RSpec/ExampleLength:
1060
1053
  Max: 85
@@ -1148,12 +1141,12 @@ RSpec/MessageSpies:
1148
1141
  RSpec/MultipleExpectations:
1149
1142
  Max: 19
1150
1143
 
1151
- # Offense count: 156
1144
+ # Offense count: 160
1152
1145
  # Configuration parameters: AllowSubject.
1153
1146
  RSpec/MultipleMemoizedHelpers:
1154
1147
  Max: 15
1155
1148
 
1156
- # Offense count: 82
1149
+ # Offense count: 85
1157
1150
  # Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
1158
1151
  # SupportedStyles: always, named_only
1159
1152
  RSpec/NamedSubject:
@@ -1173,7 +1166,7 @@ RSpec/NamedSubject:
1173
1166
  - 'spec/lib/swagger/rake_swagger_spec.rb'
1174
1167
  - 'spec/lib/swagger/swagger_dsl_spec.rb'
1175
1168
 
1176
- # Offense count: 94
1169
+ # Offense count: 96
1177
1170
  # Configuration parameters: AllowedGroups.
1178
1171
  RSpec/NestedGroups:
1179
1172
  Max: 6
@@ -1235,14 +1228,14 @@ RSpec/StubbedMock:
1235
1228
  - 'spec/lib/apipie/extractor/writer_spec.rb'
1236
1229
  - 'spec/lib/apipie/param_description_spec.rb'
1237
1230
 
1238
- # Offense count: 5
1231
+ # Offense count: 6
1239
1232
  # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
1240
1233
  RSpec/VerifiedDoubles:
1241
1234
  Exclude:
1242
1235
  - 'spec/lib/apipie/apipies_controller_spec.rb'
1236
+ - 'spec/lib/apipie/extractor/recorder_spec.rb'
1243
1237
  - 'spec/lib/apipie/extractor/writer_spec.rb'
1244
1238
  - 'spec/lib/validators/array_validator_spec.rb'
1245
- - 'spec/lib/apipie/extractor/recorder_spec.rb'
1246
1239
 
1247
1240
  # Offense count: 1
1248
1241
  RSpec/VoidExpect:
@@ -1266,6 +1259,7 @@ Rails/Delegate:
1266
1259
  - 'lib/apipie/response_description_adapter.rb'
1267
1260
 
1268
1261
  # Offense count: 24
1262
+ # This cop supports safe autocorrection (--autocorrect).
1269
1263
  # Configuration parameters: EnforcedStyle.
1270
1264
  # SupportedStyles: slashes, arguments
1271
1265
  Rails/FilePath:
@@ -1455,7 +1449,7 @@ Style/ClassCheck:
1455
1449
  - 'lib/apipie/validator.rb'
1456
1450
 
1457
1451
  # Offense count: 2
1458
- # This cop supports safe autocorrection (--autocorrect).
1452
+ # This cop supports unsafe autocorrection (--autocorrect-all).
1459
1453
  # Configuration parameters: AllowedMethods, AllowedPatterns.
1460
1454
  # AllowedMethods: ==, equal?, eql?
1461
1455
  Style/ClassEqualityComparison:
@@ -1747,7 +1741,7 @@ Style/ParallelAssignment:
1747
1741
  - 'lib/apipie/extractor.rb'
1748
1742
  - 'lib/apipie/extractor/recorder.rb'
1749
1743
 
1750
- # Offense count: 6
1744
+ # Offense count: 8
1751
1745
  # This cop supports safe autocorrection (--autocorrect).
1752
1746
  # Configuration parameters: PreferredDelimiters.
1753
1747
  Style/PercentLiteralDelimiters:
@@ -1826,7 +1820,7 @@ Style/RedundantPercentQ:
1826
1820
  Exclude:
1827
1821
  - 'apipie-rails.gemspec'
1828
1822
 
1829
- # Offense count: 27
1823
+ # Offense count: 29
1830
1824
  # This cop supports safe autocorrection (--autocorrect).
1831
1825
  # Configuration parameters: AllowMultipleReturnValues.
1832
1826
  Style/RedundantReturn:
@@ -1927,7 +1921,7 @@ Style/StringConcatenation:
1927
1921
  - 'lib/apipie/application.rb'
1928
1922
  - 'lib/apipie/extractor/writer.rb'
1929
1923
 
1930
- # Offense count: 1212
1924
+ # Offense count: 1214
1931
1925
  # This cop supports safe autocorrection (--autocorrect).
1932
1926
  # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
1933
1927
  # SupportedStyles: single_quotes, double_quotes
data/CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  Changelog
2
2
  ===========
3
3
 
4
+ ## [v1.4.0](https://github.com/Apipie/apipie-rails/tree/v1.4.0) (2024-05-30)
5
+ [Full Changelog](https://github.com/Apipie/apipie-rails/compare/v1.3.0...v1.4.0)
6
+ * Add Ruby 3.3.0 to CI build matrix (#906) Masato Nakamura
7
+ * Fix rubocop CI (#910) (Masato Nakamura)
8
+ * Add metadata for rubygems.org and use https URLs (#909) (Masato Nakamura)
9
+ * Bump GHA actions/checkout to be on node20 by default (#911) (Masato Nakamura)
10
+ * Convert readme to markdown (#920) (Panos Dalitsouris)
11
+ * Fix typos, Found via `codespell` (#921) (Kian-Meng Ang)
12
+ * Bump ruby versions on test jobs (#927) (Masato Nakamura)
13
+ * Support for Ruby 3.4.0-preview1 (#929) (Masato Nakamura)
14
+ * Add "blank allowed" message to api doc (#926) (Peko)
15
+ * Custom headers responses (#924) (Panos Dalitsouris)
16
+
17
+ ## [v1.3.0](https://github.com/Apipie/apipie-rails/tree/v1.3.0) (2023-12-19)
18
+ [Full Changelog](https://github.com/Apipie/apipie-rails/compare/v1.2.3...v1.3.0)
19
+ * rubocop fixes ([#897](https://github.com/Apipie/apipie-rails/pull/897)) (Mathieu Jobin)
20
+ * Fix usage of deprecated Rack::File in Rack 3.0 ([#896](https://github.com/Apipie/apipie-rails/pull/896)) (James Dean Shepherd)
21
+ * add rails 7.1 to the build matrix ([#898](https://github.com/Apipie/apipie-rails/pull/898)) (Mathieu Jobin)
22
+ * super small typo fix ([#900](https://github.com/Apipie/apipie-rails/pull/900)) (Eric Pugh)
23
+ * support for property example ([#901](https://github.com/Apipie/apipie-rails/pull/901)) (Chien-Wei Huang (Michael))
24
+ * Use array items type from validator ([#904](https://github.com/Apipie/apipie-rails/pull/)) (Panos Dalitsouris)
25
+
4
26
  ## [v1.2.3](https://github.com/Apipie/apipie-rails/tree/v1.2.3) (2023-10-11)
5
27
  [Full Changelog](https://github.com/Apipie/apipie-rails/compare/v1.2.2...v1.2.3)
6
28
  * Fix param: Consider default_value: nil as valid config ([#894](https://github.com/Apipie/apipie-rails/pull/894)) (davidwessman)
data/Gemfile CHANGED
@@ -5,9 +5,8 @@ source 'https://rubygems.org'
5
5
  gemspec path: '.'
6
6
 
7
7
  # use ENV vars, with default value as fallback for local setup
8
- ruby(ENV['RUBY_VERSION'] || '3.2.2')
9
- gem 'actionpack', "~> #{ENV['RAILS_VERSION'] || '7.0'}.0"
10
- gem 'activesupport', "~> #{ENV['RAILS_VERSION'] || '7.0'}.0"
8
+ gem 'actionpack', "~> #{ENV['RAILS_VERSION'] || '7.1'}.0"
9
+ gem 'activesupport', "~> #{ENV['RAILS_VERSION'] || '7.1'}.0"
11
10
 
12
11
  gem 'mime-types' # , '~> 3.0'
13
12
  gem 'rails-controller-testing'