grape-oas 1.0.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/CHANGELOG.md +82 -0
  3. data/CONTRIBUTING.md +87 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +184 -0
  6. data/RELEASING.md +109 -0
  7. data/grape-oas.gemspec +27 -0
  8. data/lib/grape-oas.rb +3 -0
  9. data/lib/grape_oas/api_model/api.rb +42 -0
  10. data/lib/grape_oas/api_model/media_type.rb +22 -0
  11. data/lib/grape_oas/api_model/node.rb +57 -0
  12. data/lib/grape_oas/api_model/operation.rb +55 -0
  13. data/lib/grape_oas/api_model/parameter.rb +24 -0
  14. data/lib/grape_oas/api_model/path.rb +29 -0
  15. data/lib/grape_oas/api_model/request_body.rb +27 -0
  16. data/lib/grape_oas/api_model/response.rb +28 -0
  17. data/lib/grape_oas/api_model/schema.rb +60 -0
  18. data/lib/grape_oas/api_model_builder.rb +63 -0
  19. data/lib/grape_oas/api_model_builders/concerns/content_type_resolver.rb +93 -0
  20. data/lib/grape_oas/api_model_builders/concerns/oas_utilities.rb +75 -0
  21. data/lib/grape_oas/api_model_builders/concerns/type_resolver.rb +142 -0
  22. data/lib/grape_oas/api_model_builders/operation.rb +168 -0
  23. data/lib/grape_oas/api_model_builders/path.rb +122 -0
  24. data/lib/grape_oas/api_model_builders/request.rb +304 -0
  25. data/lib/grape_oas/api_model_builders/request_params.rb +128 -0
  26. data/lib/grape_oas/api_model_builders/request_params_support/nested_params_builder.rb +155 -0
  27. data/lib/grape_oas/api_model_builders/request_params_support/param_location_resolver.rb +64 -0
  28. data/lib/grape_oas/api_model_builders/request_params_support/param_schema_builder.rb +163 -0
  29. data/lib/grape_oas/api_model_builders/request_params_support/schema_enhancer.rb +111 -0
  30. data/lib/grape_oas/api_model_builders/response.rb +241 -0
  31. data/lib/grape_oas/api_model_builders/response_parsers/base.rb +56 -0
  32. data/lib/grape_oas/api_model_builders/response_parsers/default_response_parser.rb +31 -0
  33. data/lib/grape_oas/api_model_builders/response_parsers/documentation_responses_parser.rb +35 -0
  34. data/lib/grape_oas/api_model_builders/response_parsers/http_codes_parser.rb +85 -0
  35. data/lib/grape_oas/constants.rb +81 -0
  36. data/lib/grape_oas/documentation_extension.rb +124 -0
  37. data/lib/grape_oas/exporter/base/operation.rb +88 -0
  38. data/lib/grape_oas/exporter/base/paths.rb +53 -0
  39. data/lib/grape_oas/exporter/concerns/schema_indexer.rb +93 -0
  40. data/lib/grape_oas/exporter/concerns/tag_builder.rb +55 -0
  41. data/lib/grape_oas/exporter/oas2/operation.rb +31 -0
  42. data/lib/grape_oas/exporter/oas2/parameter.rb +116 -0
  43. data/lib/grape_oas/exporter/oas2/paths.rb +19 -0
  44. data/lib/grape_oas/exporter/oas2/response.rb +74 -0
  45. data/lib/grape_oas/exporter/oas2/schema.rb +125 -0
  46. data/lib/grape_oas/exporter/oas2_schema.rb +133 -0
  47. data/lib/grape_oas/exporter/oas3/operation.rb +24 -0
  48. data/lib/grape_oas/exporter/oas3/parameter.rb +27 -0
  49. data/lib/grape_oas/exporter/oas3/paths.rb +21 -0
  50. data/lib/grape_oas/exporter/oas3/request_body.rb +54 -0
  51. data/lib/grape_oas/exporter/oas3/response.rb +85 -0
  52. data/lib/grape_oas/exporter/oas3/schema.rb +249 -0
  53. data/lib/grape_oas/exporter/oas30_schema.rb +13 -0
  54. data/lib/grape_oas/exporter/oas31/schema.rb +42 -0
  55. data/lib/grape_oas/exporter/oas31_schema.rb +34 -0
  56. data/lib/grape_oas/exporter/oas3_schema.rb +130 -0
  57. data/lib/grape_oas/exporter/registry.rb +82 -0
  58. data/lib/grape_oas/exporter.rb +16 -0
  59. data/lib/grape_oas/introspectors/base.rb +44 -0
  60. data/lib/grape_oas/introspectors/dry_introspector.rb +131 -0
  61. data/lib/grape_oas/introspectors/dry_introspector_support/argument_extractor.rb +51 -0
  62. data/lib/grape_oas/introspectors/dry_introspector_support/ast_walker.rb +125 -0
  63. data/lib/grape_oas/introspectors/dry_introspector_support/constraint_applier.rb +136 -0
  64. data/lib/grape_oas/introspectors/dry_introspector_support/constraint_extractor.rb +85 -0
  65. data/lib/grape_oas/introspectors/dry_introspector_support/constraint_merger.rb +47 -0
  66. data/lib/grape_oas/introspectors/dry_introspector_support/contract_resolver.rb +60 -0
  67. data/lib/grape_oas/introspectors/dry_introspector_support/inheritance_handler.rb +87 -0
  68. data/lib/grape_oas/introspectors/dry_introspector_support/predicate_handler.rb +131 -0
  69. data/lib/grape_oas/introspectors/dry_introspector_support/type_schema_builder.rb +143 -0
  70. data/lib/grape_oas/introspectors/dry_introspector_support/type_unwrapper.rb +143 -0
  71. data/lib/grape_oas/introspectors/entity_introspector.rb +165 -0
  72. data/lib/grape_oas/introspectors/entity_introspector_support/cycle_tracker.rb +42 -0
  73. data/lib/grape_oas/introspectors/entity_introspector_support/discriminator_handler.rb +83 -0
  74. data/lib/grape_oas/introspectors/entity_introspector_support/exposure_processor.rb +261 -0
  75. data/lib/grape_oas/introspectors/entity_introspector_support/inheritance_builder.rb +112 -0
  76. data/lib/grape_oas/introspectors/entity_introspector_support/property_extractor.rb +53 -0
  77. data/lib/grape_oas/introspectors/registry.rb +136 -0
  78. data/lib/grape_oas/rake/oas_tasks.rb +127 -0
  79. data/lib/grape_oas/version.rb +5 -0
  80. data/lib/grape_oas.rb +145 -0
  81. metadata +152 -0
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: grape-oas
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrei Subbota
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: grape
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '3.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '3.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: zeitwerk
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ description: A Grape extension that provides OpenAPI (Swagger) v2 and v3 documentation
41
+ support
42
+ email:
43
+ - subbota@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - CHANGELOG.md
49
+ - CONTRIBUTING.md
50
+ - LICENSE.txt
51
+ - README.md
52
+ - RELEASING.md
53
+ - grape-oas.gemspec
54
+ - lib/grape-oas.rb
55
+ - lib/grape_oas.rb
56
+ - lib/grape_oas/api_model/api.rb
57
+ - lib/grape_oas/api_model/media_type.rb
58
+ - lib/grape_oas/api_model/node.rb
59
+ - lib/grape_oas/api_model/operation.rb
60
+ - lib/grape_oas/api_model/parameter.rb
61
+ - lib/grape_oas/api_model/path.rb
62
+ - lib/grape_oas/api_model/request_body.rb
63
+ - lib/grape_oas/api_model/response.rb
64
+ - lib/grape_oas/api_model/schema.rb
65
+ - lib/grape_oas/api_model_builder.rb
66
+ - lib/grape_oas/api_model_builders/concerns/content_type_resolver.rb
67
+ - lib/grape_oas/api_model_builders/concerns/oas_utilities.rb
68
+ - lib/grape_oas/api_model_builders/concerns/type_resolver.rb
69
+ - lib/grape_oas/api_model_builders/operation.rb
70
+ - lib/grape_oas/api_model_builders/path.rb
71
+ - lib/grape_oas/api_model_builders/request.rb
72
+ - lib/grape_oas/api_model_builders/request_params.rb
73
+ - lib/grape_oas/api_model_builders/request_params_support/nested_params_builder.rb
74
+ - lib/grape_oas/api_model_builders/request_params_support/param_location_resolver.rb
75
+ - lib/grape_oas/api_model_builders/request_params_support/param_schema_builder.rb
76
+ - lib/grape_oas/api_model_builders/request_params_support/schema_enhancer.rb
77
+ - lib/grape_oas/api_model_builders/response.rb
78
+ - lib/grape_oas/api_model_builders/response_parsers/base.rb
79
+ - lib/grape_oas/api_model_builders/response_parsers/default_response_parser.rb
80
+ - lib/grape_oas/api_model_builders/response_parsers/documentation_responses_parser.rb
81
+ - lib/grape_oas/api_model_builders/response_parsers/http_codes_parser.rb
82
+ - lib/grape_oas/constants.rb
83
+ - lib/grape_oas/documentation_extension.rb
84
+ - lib/grape_oas/exporter.rb
85
+ - lib/grape_oas/exporter/base/operation.rb
86
+ - lib/grape_oas/exporter/base/paths.rb
87
+ - lib/grape_oas/exporter/concerns/schema_indexer.rb
88
+ - lib/grape_oas/exporter/concerns/tag_builder.rb
89
+ - lib/grape_oas/exporter/oas2/operation.rb
90
+ - lib/grape_oas/exporter/oas2/parameter.rb
91
+ - lib/grape_oas/exporter/oas2/paths.rb
92
+ - lib/grape_oas/exporter/oas2/response.rb
93
+ - lib/grape_oas/exporter/oas2/schema.rb
94
+ - lib/grape_oas/exporter/oas2_schema.rb
95
+ - lib/grape_oas/exporter/oas3/operation.rb
96
+ - lib/grape_oas/exporter/oas3/parameter.rb
97
+ - lib/grape_oas/exporter/oas3/paths.rb
98
+ - lib/grape_oas/exporter/oas3/request_body.rb
99
+ - lib/grape_oas/exporter/oas3/response.rb
100
+ - lib/grape_oas/exporter/oas3/schema.rb
101
+ - lib/grape_oas/exporter/oas30_schema.rb
102
+ - lib/grape_oas/exporter/oas31/schema.rb
103
+ - lib/grape_oas/exporter/oas31_schema.rb
104
+ - lib/grape_oas/exporter/oas3_schema.rb
105
+ - lib/grape_oas/exporter/registry.rb
106
+ - lib/grape_oas/introspectors/base.rb
107
+ - lib/grape_oas/introspectors/dry_introspector.rb
108
+ - lib/grape_oas/introspectors/dry_introspector_support/argument_extractor.rb
109
+ - lib/grape_oas/introspectors/dry_introspector_support/ast_walker.rb
110
+ - lib/grape_oas/introspectors/dry_introspector_support/constraint_applier.rb
111
+ - lib/grape_oas/introspectors/dry_introspector_support/constraint_extractor.rb
112
+ - lib/grape_oas/introspectors/dry_introspector_support/constraint_merger.rb
113
+ - lib/grape_oas/introspectors/dry_introspector_support/contract_resolver.rb
114
+ - lib/grape_oas/introspectors/dry_introspector_support/inheritance_handler.rb
115
+ - lib/grape_oas/introspectors/dry_introspector_support/predicate_handler.rb
116
+ - lib/grape_oas/introspectors/dry_introspector_support/type_schema_builder.rb
117
+ - lib/grape_oas/introspectors/dry_introspector_support/type_unwrapper.rb
118
+ - lib/grape_oas/introspectors/entity_introspector.rb
119
+ - lib/grape_oas/introspectors/entity_introspector_support/cycle_tracker.rb
120
+ - lib/grape_oas/introspectors/entity_introspector_support/discriminator_handler.rb
121
+ - lib/grape_oas/introspectors/entity_introspector_support/exposure_processor.rb
122
+ - lib/grape_oas/introspectors/entity_introspector_support/inheritance_builder.rb
123
+ - lib/grape_oas/introspectors/entity_introspector_support/property_extractor.rb
124
+ - lib/grape_oas/introspectors/registry.rb
125
+ - lib/grape_oas/rake/oas_tasks.rb
126
+ - lib/grape_oas/version.rb
127
+ homepage: https://github.com/numbata/grape-oas
128
+ licenses:
129
+ - MIT
130
+ metadata:
131
+ homepage_uri: https://github.com/numbata/grape-oas
132
+ source_code_uri: https://github.com/numbata/grape-oas
133
+ changelog_uri: https://github.com/numbata/grape-oas/blob/main/CHANGELOG.md
134
+ rubygems_mfa_required: 'true'
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '3.2'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ requirements: []
149
+ rubygems_version: 3.6.8
150
+ specification_version: 4
151
+ summary: OpenAPI (Swagger) v2 and v3 documentation for Grape APIs
152
+ test_files: []