rails-autodoc 0.1.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 (81) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +63 -0
  3. data/.gitignore +16 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +81 -0
  6. data/.yardopts +3 -0
  7. data/Appraisals +26 -0
  8. data/CHANGELOG.md +20 -0
  9. data/CONTRIBUTING.md +54 -0
  10. data/Gemfile +10 -0
  11. data/Gemfile.lock +298 -0
  12. data/LICENSE.txt +21 -0
  13. data/README.md +111 -0
  14. data/Rakefile +26 -0
  15. data/app/controllers/rails_autodoc/spec_controller.rb +52 -0
  16. data/config/routes.rb +6 -0
  17. data/docs/annotation-dsl.md +56 -0
  18. data/docs/architecture.md +37 -0
  19. data/docs/ci-integration.md +32 -0
  20. data/docs/configuration.md +48 -0
  21. data/docs/faq.md +29 -0
  22. data/docs/getting-started.md +54 -0
  23. data/docs/index.md +21 -0
  24. data/docs/inference-rules.md +74 -0
  25. data/docs/limitations.md +34 -0
  26. data/docs/migration-from-rswag.md +42 -0
  27. data/docs/serializer-support.md +25 -0
  28. data/lib/generators/rails_autodoc/install_generator.rb +34 -0
  29. data/lib/generators/rails_autodoc/templates/autodoc-verify.yml +19 -0
  30. data/lib/generators/rails_autodoc/templates/initializer.rb +20 -0
  31. data/lib/rails_autodoc/ast_traversal.rb +74 -0
  32. data/lib/rails_autodoc/configuration.rb +45 -0
  33. data/lib/rails_autodoc/dsl/controller_extensions.rb +65 -0
  34. data/lib/rails_autodoc/engine.rb +13 -0
  35. data/lib/rails_autodoc/generator.rb +54 -0
  36. data/lib/rails_autodoc/openapi_spec_builder.rb +334 -0
  37. data/lib/rails_autodoc/railtie.rb +25 -0
  38. data/lib/rails_autodoc/registry.rb +71 -0
  39. data/lib/rails_autodoc/response_inferencer.rb +158 -0
  40. data/lib/rails_autodoc/route_inspector.rb +139 -0
  41. data/lib/rails_autodoc/schema_mapper.rb +142 -0
  42. data/lib/rails_autodoc/serializers/active_model_serializer.rb +27 -0
  43. data/lib/rails_autodoc/serializers/alba.rb +39 -0
  44. data/lib/rails_autodoc/serializers/base.rb +19 -0
  45. data/lib/rails_autodoc/serializers/blueprinter.rb +27 -0
  46. data/lib/rails_autodoc/serializers/registry.rb +29 -0
  47. data/lib/rails_autodoc/strong_params_parser.rb +188 -0
  48. data/lib/rails_autodoc/tasks/autodoc.rake +26 -0
  49. data/lib/rails_autodoc/version.rb +5 -0
  50. data/lib/rails_autodoc.rb +47 -0
  51. data/mkdocs.yml +16 -0
  52. data/rails-autodoc.gemspec +61 -0
  53. data/spec/combustion/config.ru +4 -0
  54. data/spec/dummy/app/assets/config/manifest.js +1 -0
  55. data/spec/dummy/app/controllers/api/v1/users_controller.rb +45 -0
  56. data/spec/dummy/app/models/user.rb +5 -0
  57. data/spec/dummy/config/application.rb +14 -0
  58. data/spec/dummy/config/boot.rb +5 -0
  59. data/spec/dummy/config/database.yml +3 -0
  60. data/spec/dummy/config/environment.rb +5 -0
  61. data/spec/dummy/config/environments/test.rb +12 -0
  62. data/spec/dummy/config/initializers/rails_autodoc.rb +8 -0
  63. data/spec/dummy/config/initializers/sqlite3_boolean.rb +8 -0
  64. data/spec/dummy/config/routes.rb +11 -0
  65. data/spec/dummy/db/migrate/001_create_users.rb +14 -0
  66. data/spec/dummy/db/schema.rb +12 -0
  67. data/spec/rails_autodoc/configuration_spec.rb +34 -0
  68. data/spec/rails_autodoc/dsl_integration_spec.rb +77 -0
  69. data/spec/rails_autodoc/engine_spec.rb +26 -0
  70. data/spec/rails_autodoc/gem_spec.rb +27 -0
  71. data/spec/rails_autodoc/generator_spec.rb +39 -0
  72. data/spec/rails_autodoc/golden_spec.rb +67 -0
  73. data/spec/rails_autodoc/integration_spec.rb +114 -0
  74. data/spec/rails_autodoc/registry_spec.rb +26 -0
  75. data/spec/rails_autodoc/response_inferencer_spec.rb +26 -0
  76. data/spec/rails_autodoc/route_inspector_spec.rb +56 -0
  77. data/spec/rails_autodoc/schema_mapper_spec.rb +42 -0
  78. data/spec/rails_autodoc/serializers/registry_spec.rb +33 -0
  79. data/spec/rails_autodoc/strong_params_parser_spec.rb +41 -0
  80. data/spec/spec_helper.rb +43 -0
  81. metadata +320 -0
metadata ADDED
@@ -0,0 +1,320 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails-autodoc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Prajjwalkumar Panzade
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-05-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '9'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '5.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '9'
33
+ - !ruby/object:Gem::Dependency
34
+ name: parser
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.3'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: psych
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '3.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '3.1'
61
+ - !ruby/object:Gem::Dependency
62
+ name: railties
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '5.2'
68
+ - - "<"
69
+ - !ruby/object:Gem::Version
70
+ version: '9'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '5.2'
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '9'
81
+ - !ruby/object:Gem::Dependency
82
+ name: appraisal
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: combustion
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.4'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.4'
109
+ - !ruby/object:Gem::Dependency
110
+ name: rails
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '5.2'
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '9'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '5.2'
126
+ - - "<"
127
+ - !ruby/object:Gem::Version
128
+ version: '9'
129
+ - !ruby/object:Gem::Dependency
130
+ name: rspec
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '3.12'
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: '3.12'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rspec-rails
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ - !ruby/object:Gem::Dependency
158
+ name: rubocop
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: '1.60'
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '1.60'
171
+ - !ruby/object:Gem::Dependency
172
+ name: sqlite3
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '1.4'
178
+ - - "<"
179
+ - !ruby/object:Gem::Version
180
+ version: '1.7'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '1.4'
188
+ - - "<"
189
+ - !ruby/object:Gem::Version
190
+ version: '1.7'
191
+ - !ruby/object:Gem::Dependency
192
+ name: webmock
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ description: Generate and serve OpenAPI 3.0 specs from Rails conventions with optional
206
+ annotation overrides.
207
+ email:
208
+ - prajjwalbpanzade22@gmail.com
209
+ executables: []
210
+ extensions: []
211
+ extra_rdoc_files: []
212
+ files:
213
+ - ".github/workflows/ci.yml"
214
+ - ".gitignore"
215
+ - ".rspec"
216
+ - ".rubocop.yml"
217
+ - ".yardopts"
218
+ - Appraisals
219
+ - CHANGELOG.md
220
+ - CONTRIBUTING.md
221
+ - Gemfile
222
+ - Gemfile.lock
223
+ - LICENSE.txt
224
+ - README.md
225
+ - Rakefile
226
+ - app/controllers/rails_autodoc/spec_controller.rb
227
+ - config/routes.rb
228
+ - docs/annotation-dsl.md
229
+ - docs/architecture.md
230
+ - docs/ci-integration.md
231
+ - docs/configuration.md
232
+ - docs/faq.md
233
+ - docs/getting-started.md
234
+ - docs/index.md
235
+ - docs/inference-rules.md
236
+ - docs/limitations.md
237
+ - docs/migration-from-rswag.md
238
+ - docs/serializer-support.md
239
+ - lib/generators/rails_autodoc/install_generator.rb
240
+ - lib/generators/rails_autodoc/templates/autodoc-verify.yml
241
+ - lib/generators/rails_autodoc/templates/initializer.rb
242
+ - lib/rails_autodoc.rb
243
+ - lib/rails_autodoc/ast_traversal.rb
244
+ - lib/rails_autodoc/configuration.rb
245
+ - lib/rails_autodoc/dsl/controller_extensions.rb
246
+ - lib/rails_autodoc/engine.rb
247
+ - lib/rails_autodoc/generator.rb
248
+ - lib/rails_autodoc/openapi_spec_builder.rb
249
+ - lib/rails_autodoc/railtie.rb
250
+ - lib/rails_autodoc/registry.rb
251
+ - lib/rails_autodoc/response_inferencer.rb
252
+ - lib/rails_autodoc/route_inspector.rb
253
+ - lib/rails_autodoc/schema_mapper.rb
254
+ - lib/rails_autodoc/serializers/active_model_serializer.rb
255
+ - lib/rails_autodoc/serializers/alba.rb
256
+ - lib/rails_autodoc/serializers/base.rb
257
+ - lib/rails_autodoc/serializers/blueprinter.rb
258
+ - lib/rails_autodoc/serializers/registry.rb
259
+ - lib/rails_autodoc/strong_params_parser.rb
260
+ - lib/rails_autodoc/tasks/autodoc.rake
261
+ - lib/rails_autodoc/version.rb
262
+ - mkdocs.yml
263
+ - rails-autodoc.gemspec
264
+ - spec/combustion/config.ru
265
+ - spec/dummy/app/assets/config/manifest.js
266
+ - spec/dummy/app/controllers/api/v1/users_controller.rb
267
+ - spec/dummy/app/models/user.rb
268
+ - spec/dummy/config/application.rb
269
+ - spec/dummy/config/boot.rb
270
+ - spec/dummy/config/database.yml
271
+ - spec/dummy/config/environment.rb
272
+ - spec/dummy/config/environments/test.rb
273
+ - spec/dummy/config/initializers/rails_autodoc.rb
274
+ - spec/dummy/config/initializers/sqlite3_boolean.rb
275
+ - spec/dummy/config/routes.rb
276
+ - spec/dummy/db/migrate/001_create_users.rb
277
+ - spec/dummy/db/schema.rb
278
+ - spec/rails_autodoc/configuration_spec.rb
279
+ - spec/rails_autodoc/dsl_integration_spec.rb
280
+ - spec/rails_autodoc/engine_spec.rb
281
+ - spec/rails_autodoc/gem_spec.rb
282
+ - spec/rails_autodoc/generator_spec.rb
283
+ - spec/rails_autodoc/golden_spec.rb
284
+ - spec/rails_autodoc/integration_spec.rb
285
+ - spec/rails_autodoc/registry_spec.rb
286
+ - spec/rails_autodoc/response_inferencer_spec.rb
287
+ - spec/rails_autodoc/route_inspector_spec.rb
288
+ - spec/rails_autodoc/schema_mapper_spec.rb
289
+ - spec/rails_autodoc/serializers/registry_spec.rb
290
+ - spec/rails_autodoc/strong_params_parser_spec.rb
291
+ - spec/spec_helper.rb
292
+ homepage: https://github.com/prajjwalkumarpanzade/rails-autodoc
293
+ licenses:
294
+ - MIT
295
+ metadata:
296
+ homepage_uri: https://github.com/prajjwalkumarpanzade/rails-autodoc
297
+ source_code_uri: https://github.com/prajjwalkumarpanzade/rails-autodoc
298
+ changelog_uri: https://github.com/prajjwalkumarpanzade/rails-autodoc/blob/main/CHANGELOG.md
299
+ rubygems_mfa_required: 'true'
300
+ post_install_message:
301
+ rdoc_options: []
302
+ require_paths:
303
+ - lib
304
+ required_ruby_version: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - ">="
307
+ - !ruby/object:Gem::Version
308
+ version: 2.7.0
309
+ required_rubygems_version: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ requirements: []
315
+ rubygems_version: 3.1.6
316
+ signing_key:
317
+ specification_version: 4
318
+ summary: Auto-generate OpenAPI documentation from Rails routes, strong params, and
319
+ schemas
320
+ test_files: []