r2-oas 0.1.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.rubocop.yml +6 -3
  4. data/.rubocop_todo.yml +68 -1
  5. data/.travis.yml +6 -2
  6. data/Appraisals +13 -0
  7. data/CHANGELOG.md +58 -1
  8. data/GEMSPEC.md +20 -0
  9. data/README.ja.md +65 -396
  10. data/README.md +62 -392
  11. data/devscript/all_support_ruby.sh +43 -0
  12. data/devscript/bundle_for_all_support_ruby.sh +31 -0
  13. data/devscript/rspec_for_all_support_ruby.sh +27 -0
  14. data/docs/.nojekyll +0 -0
  15. data/docs/README.md +173 -0
  16. data/docs/_sidebar.md +25 -0
  17. data/docs/attention/if_clash.md +17 -0
  18. data/docs/index.html +29 -0
  19. data/docs/{versions/v3.md → schema/3.0.0.md} +1 -1
  20. data/docs/setting/COC.md +14 -0
  21. data/docs/setting/CORS.md +22 -0
  22. data/docs/setting/configure.md +176 -0
  23. data/docs/trableshouting/runtime_error.md +44 -0
  24. data/docs/{HOW_TO_ANALYZE_DOCS.md → usage/analyze_docs.md} +52 -52
  25. data/docs/usage/clean_docs.md +19 -0
  26. data/docs/{HOW_TO_DEPLOY_SWAGGER_DOC.md → usage/deploy_docs.md} +29 -29
  27. data/docs/usage/display_paths_list.md +35 -0
  28. data/docs/{HOW_TO_DISPLAY_PATHS_STATS.md → usage/display_paths_stats.md} +15 -14
  29. data/docs/{HOW_TO_START_SWAGGER_EDITOR.md → usage/edit_docs.md} +88 -88
  30. data/docs/usage/generate_docs.md +412 -0
  31. data/docs/{HOW_TO_MONITOR_SWAGGER_DOC.md → usage/monitor_docs.md} +71 -71
  32. data/docs/usage/use_hook_methods.md +236 -0
  33. data/docs/{HOW_TO_USE_HOOK_WHEN_GENERATE_DOC.md → usage/use_hook_to_generate_docs.md} +48 -57
  34. data/docs/{HOW_TO_USE_SCHEMA_NAMESPACE.md → usage/use_schema_namespace.md} +46 -41
  35. data/docs/{HOW_TO_USE_TAG_NAMESPACE.md → usage/use_tag_namespace.md} +46 -42
  36. data/docs/{HOW_TO_START_SWAGGER_UI.md → usage/view_docs.md} +132 -132
  37. data/gemfiles/ruby_2.3.3.gemfile +11 -0
  38. data/gemfiles/ruby_2.4.2.gemfile +11 -0
  39. data/gemfiles/ruby_2.5.8.gemfile +11 -0
  40. data/gemfiles/ruby_2.6.6.gemfile +11 -0
  41. data/gemfiles/ruby_2.7.1.gemfile +11 -0
  42. data/lib/r2-oas.rb +3 -4
  43. data/lib/r2-oas/app_configuration.rb +19 -16
  44. data/lib/r2-oas/deploy/client.rb +14 -2
  45. data/lib/r2-oas/errors.rb +1 -0
  46. data/lib/r2-oas/lib/core_ext/hash/deep_merge.rb +44 -0
  47. data/lib/r2-oas/lib/core_ext/object/blank.rb +135 -0
  48. data/lib/r2-oas/lib/three-way-merge/twm.rb +83 -0
  49. data/lib/r2-oas/schema/builder.rb +23 -0
  50. data/lib/r2-oas/schema/editor.rb +26 -7
  51. data/lib/r2-oas/schema/generator.rb +1 -1
  52. data/lib/r2-oas/schema/manager/file_manager.rb +26 -0
  53. data/lib/r2-oas/schema/ui.rb +0 -1
  54. data/lib/r2-oas/schema/v3/analyzer/base_analyzer.rb +1 -6
  55. data/lib/r2-oas/schema/v3/analyzer/components/object_analyzer.rb +1 -1
  56. data/lib/r2-oas/schema/v3/analyzer/path_analyzer.rb +1 -1
  57. data/lib/r2-oas/schema/v3/analyzer/tag_analyzer.rb +1 -1
  58. data/lib/r2-oas/schema/v3/builder.rb +28 -0
  59. data/lib/r2-oas/schema/v3/builder/base_builder.rb +60 -0
  60. data/lib/r2-oas/schema/v3/builder/doc_builder.rb +43 -0
  61. data/lib/r2-oas/schema/v3/cleaner/base_cleaner.rb +1 -1
  62. data/lib/r2-oas/schema/v3/generator.rb +1 -5
  63. data/lib/r2-oas/schema/v3/generator/base_generator.rb +30 -1
  64. data/lib/r2-oas/schema/v3/generator/components/object_generator.rb +6 -25
  65. data/lib/r2-oas/schema/v3/generator/components/request_body_generator.rb +6 -6
  66. data/lib/r2-oas/schema/v3/generator/doc_generator.rb +84 -18
  67. data/lib/r2-oas/schema/v3/generator/path_generator.rb +7 -19
  68. data/lib/r2-oas/schema/v3/generator/schema_generator.rb +6 -26
  69. data/lib/r2-oas/schema/v3/manager/file/base_file_manager.rb +10 -4
  70. data/lib/r2-oas/schema/v3/manager/pathname_manager.rb +6 -1
  71. data/lib/r2-oas/schema/v3/object/path_item_object.rb +17 -9
  72. data/lib/r2-oas/store.rb +118 -0
  73. data/lib/r2-oas/task_logging.rb +6 -0
  74. data/lib/r2-oas/tasks/main.rake +66 -73
  75. data/lib/r2-oas/tasks/tool.rake +25 -28
  76. data/lib/r2-oas/tool/paths/ls.rb +1 -1
  77. data/lib/r2-oas/version.rb +1 -1
  78. data/r2-oas.gemspec +20 -25
  79. metadata +122 -52
  80. data/Gemfile.lock +0 -207
  81. data/docs/HOW_TO_CLEAN_DOCS.md +0 -19
  82. data/docs/HOW_TO_DISPLAY_PATHS_LIST.md +0 -28
  83. data/docs/HOW_TO_GENERATE_DOCS.md +0 -256
@@ -0,0 +1,236 @@
1
+ # Use hook methods
2
+
3
+ Supported hook(life cycle methods) is like this:
4
+
5
+ - `before_create`
6
+ - `after_create`
7
+
8
+ Supported Hook class is like this:
9
+
10
+ - `R2OAS::Schema::V3::InfoObject`
11
+ - `R2OAS::Schema::V3::PathsObject`
12
+ - `R2OAS::Schema::V3::PathItemObject`
13
+ - `R2OAS::Schema::V3::ExternalDocumentObject`
14
+ - `R2OAS::Schema::V3::ComponentsObject`
15
+ - `R2OAS::Schema::V3::Components::SchemaObject`
16
+ - `R2OAS::Schema::V3::Components::RequestBodyObject`
17
+
18
+ By inheriting these classes, you can hook them at the time of document generation by writing like this:
19
+
20
+ #### case: InfoObject
21
+
22
+ ```ruby
23
+ class CustomInfoObject < R2OAS::Schema::V3::InfoObject
24
+ before_create do |doc|
25
+ # [Important] Please change doc destructively.
26
+ # [Important] To be able to use methods in Rails !
27
+ doc.merge!({
28
+ # Something ....
29
+ })
30
+ end
31
+
32
+ after_create do |doc, path|
33
+ # [Important] Please change doc destructively.
34
+ # [Important] To be able to use methods in Rails !
35
+ doc.merge!({
36
+ # Something ....
37
+ })
38
+ end
39
+ end
40
+ ```
41
+
42
+ #### case: PathsObject
43
+
44
+ ```ruby
45
+ class CustomPathsObject < R2OAS::Schema::V3::PathsObject
46
+ before_create do |doc|
47
+ # [Important] Please change doc destructively.
48
+ # [Important] To be able to use methods in Rails !
49
+ doc.merge!({
50
+ # Something ....
51
+ })
52
+ end
53
+
54
+ after_create do |doc|
55
+ # [Important] Please change doc destructively.
56
+ # [Important] To be able to use methods in Rails !
57
+ doc.merge!({
58
+ # Something ....
59
+ })
60
+ end
61
+ end
62
+ ```
63
+
64
+ #### case: PathItemObject
65
+
66
+ ```ruby
67
+ class CustomPathItemObject < R2OAS::Schema::V3::PathItemObject
68
+ before_create do |doc, path|
69
+ # [Important] Please change doc destructively.
70
+ # [Important] To be able to use methods in Rails !
71
+ doc.merge!({
72
+ # Something ....
73
+ })
74
+ end
75
+
76
+ after_create do |doc, schema_name|
77
+ # [Important] Please change doc destructively.
78
+ # [Important] To be able to use methods in Rails !
79
+ doc.merge!({
80
+ # Something ....
81
+ })
82
+ end
83
+ end
84
+ ```
85
+
86
+ #### case: ExternalDocumentObject
87
+
88
+ ```ruby
89
+ class CustomExternalDocumentObject < R2OAS::Schema::V3::ExternalDocumentObject
90
+ before_create do |doc|
91
+ # [Important] Please change doc destructively.
92
+ # [Important] To be able to use methods in Rails !
93
+ doc.merge!({
94
+ # Something ....
95
+ })
96
+ end
97
+
98
+ after_create do |doc|
99
+ # [Important] Please change doc destructively.
100
+ # [Important] To be able to use methods in Rails !
101
+ doc.merge!({
102
+ # Something ....
103
+ })
104
+ end
105
+ end
106
+ ```
107
+
108
+ #### case: ComponentsObject
109
+
110
+ ```ruby
111
+ class CustomComponentsObject < R2OAS::Schema::V3::ComponentsObject
112
+ before_create do |doc|
113
+ # [Important] Please change doc destructively.
114
+ # [Important] To be able to use methods in Rails !
115
+ doc.merge!({
116
+ # Something ....
117
+ })
118
+ end
119
+
120
+ after_create do |doc|
121
+ # [Important] Please change doc destructively.
122
+ # [Important] To be able to use methods in Rails !
123
+ doc.merge!({
124
+ # Something ....
125
+ })
126
+ end
127
+ end
128
+ ```
129
+
130
+ #### case: Components::SchemaObject
131
+
132
+ ```ruby
133
+ class CustomComponentsSchemaObject < R2OAS::Schema::V3::Components::SchemaObject
134
+ before_create do |doc, schema_name|
135
+ # [Important] Please change doc destructively.
136
+ # [Important] To be able to use methods in Rails !
137
+ doc.merge!({
138
+ # Something ....
139
+ })
140
+ end
141
+
142
+ after_create do |doc, schema_name|
143
+ # [Important] Please change doc destructively.
144
+ # [Important] To be able to use methods in Rails !
145
+ doc.merge!({
146
+ # Something ....
147
+ })
148
+ end
149
+ end
150
+ ```
151
+
152
+ If you want to determine the component schema name at runtime, like this:
153
+
154
+ ```ruby
155
+ class CustomComponentsSchemaObject < R2OAS::Schema::V3::Components::SchemaObject
156
+ def components_schema_name(doc, path_component, tag_name, verb, http_status, schema_name)
157
+ # [Important] Please return string.
158
+ # default
159
+ schema_name
160
+ end
161
+ end
162
+ ```
163
+
164
+ `path_component` is `R2OAS::Routing::PathComponent` instance.
165
+
166
+ ```ruby
167
+ module R2OAS
168
+ module Routing
169
+ class PathComponent < BaseComponent
170
+ def initialize(path)
171
+ def to_s
172
+ def symbol_to_brace
173
+ def path_parameters_data
174
+ def path_excluded_path_parameters
175
+ def exist_path_parameters?
176
+ def path_parameters
177
+ private
178
+ def without_format
179
+ ```
180
+
181
+ #### case: Components::RequestBodyObject
182
+
183
+ ```ruby
184
+ class CustomComponentsRequestBodyObject < R2OAS::Schema::V3::Components::RequestBodyObject
185
+ before_create do |doc, schema_name|
186
+ # [Important] Please change doc destructively.
187
+ # [Important] To be able to use methods in Rails !
188
+ doc.merge!({
189
+ # Something ....
190
+ })
191
+ end
192
+
193
+ after_create do |doc, schema_name|
194
+ # [Important] Please change doc destructively.
195
+ # [Important] To be able to use methods in Rails !
196
+ doc.merge!({
197
+ # Something ....
198
+ })
199
+ end
200
+ end
201
+ ```
202
+
203
+ If you want to determine the component schema name at runtime, like this:
204
+
205
+ ```ruby
206
+ class CustomComponentsRequestBodyObject < R2OAS::Schema::V3::Components::RequestBodyObject
207
+ def components_request_body_name(doc, path_component, tag_name, verb, schema_name)
208
+ # [Important] Please return string.
209
+ # default
210
+ schema_name
211
+ end
212
+
213
+ def components_schema_name(doc, path_component, tag_name, verb, schema_name)
214
+ # [Important] Please return string.
215
+ # default
216
+ schema_name
217
+ end
218
+ end
219
+ ```
220
+
221
+ And write this to the configuration.
222
+
223
+ ```ruby
224
+ # If only InfoObject and PathItemObject, use a custom class
225
+ R2OAS.configure do |config|
226
+ #
227
+ # omission ...
228
+ #
229
+ config.use_object_classes.merge!({
230
+ info_object: CustomInfoObject,
231
+ path_item_object: CustomPathItemObject
232
+ })
233
+ end
234
+ ```
235
+
236
+ This is the end.
@@ -1,6 +1,8 @@
1
- ## BasicUsage
1
+ ## Use hook to generate docs
2
2
 
3
- `custom_path_item_object.rb`
3
+ ## Prepare
4
+
5
+ prepare a file like `custom_path_item_object.rb`
4
6
 
5
7
  ```ruby
6
8
  class CustomPathItemObject < R2OAS::Schema::V3::PathItemObject
@@ -56,25 +58,14 @@ end
56
58
  require_relative 'custom_path_item_object'
57
59
 
58
60
  R2OAS.configure do |config|
59
- config.root_dir_path = "./oas_docs"
60
- config.schema_save_dir_name = "src"
61
- config.doc_save_file_name = "oas_doc.yml"
62
- config.force_update_schema = false
63
- config.use_tag_namespace = true
64
- config.use_schema_namespace = false
65
- config.server.data = [
66
- {
67
- url: "http://localhost:3000",
68
- description: "localhost"
69
- }
70
- ]
71
- config.interval_to_save_edited_tmp_schema = 15
72
61
  config.use_object_classes.merge!({
73
62
  path_item_object: CustomPathItemObject
74
63
  })
75
64
  end
76
65
  ```
77
66
 
67
+ ## Command
68
+
78
69
  ```bash
79
70
  $ bundle exec rake routes:oas:docs
80
71
  ```
@@ -146,54 +137,54 @@ show_in_app GET /:model_name/:id/show_in_app(.:format) rails_admin/main#
146
137
  ```
147
138
  $ bundle exec rake routes:oas:docs
148
139
  I, [2019-06-02T22:12:41.530676 #61323] INFO -- : [R2-OAS] start
149
- I, [2019-06-02T22:12:41.609492 #61323] INFO -- : [Generate Swagger schema files] start
140
+ I, [2019-06-02T22:12:41.609492 #61323] INFO -- : [Generate OAS schema files] start
150
141
  I, [2019-06-02T22:12:41.609574 #61323] INFO -- : <From routes data>
151
142
  I, [2019-06-02T22:12:41.609591 #61323] INFO -- : <Update schema files>
152
- I, [2019-06-02T22:12:41.611183 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/openapi.yml
153
- I, [2019-06-02T22:12:41.611676 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/info.yml
154
- I, [2019-06-02T22:12:41.612596 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/tags.yml
155
- I, [2019-06-02T22:12:41.612619 #61323] INFO -- : [Generate Swagger schema files (paths)] start
143
+ I, [2019-06-02T22:12:41.611183 #61323] INFO -- : Write schema file: oas_docs/src/openapi.yml
144
+ I, [2019-06-02T22:12:41.611676 #61323] INFO -- : Write schema file: oas_docs/src/info.yml
145
+ I, [2019-06-02T22:12:41.612596 #61323] INFO -- : Write schema file: oas_docs/src/tags.yml
146
+ I, [2019-06-02T22:12:41.612619 #61323] INFO -- : [Generate OAS schema files (paths)] start
156
147
  I, [2019-06-02T22:12:41.612765 #61323] INFO -- : <From routes data>
157
148
  I, [2019-06-02T22:12:41.612782 #61323] INFO -- : <Update schema files (paths)>
158
- I, [2019-06-02T22:12:41.614701 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/rails_admin/engine.yml
159
- I, [2019-06-02T22:12:41.618979 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/api/v2/post.yml
160
- I, [2019-06-02T22:12:41.623081 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/api/v1/post.yml
161
- I, [2019-06-02T22:12:41.630184 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/api/v1/task.yml
162
- I, [2019-06-02T22:12:41.633369 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/task.yml
163
- I, [2019-06-02T22:12:41.636323 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/user.yml
164
- I, [2019-06-02T22:12:41.642353 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/rails_admin/main.yml
165
- I, [2019-06-02T22:12:41.642381 #61323] INFO -- : [Generate Swagger schema files (paths)] end
166
- I, [2019-06-02T22:12:41.642664 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/externalDocs.yml
167
- I, [2019-06-02T22:12:41.642993 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/servers.yml
168
- I, [2019-06-02T22:12:41.643015 #61323] INFO -- : [Generate Swagger schema files (components)] start
149
+ I, [2019-06-02T22:12:41.614701 #61323] INFO -- : Write schema file: oas_docs/src/paths/rails_admin/engine.yml
150
+ I, [2019-06-02T22:12:41.618979 #61323] INFO -- : Write schema file: oas_docs/src/paths/api/v2/post.yml
151
+ I, [2019-06-02T22:12:41.623081 #61323] INFO -- : Write schema file: oas_docs/src/paths/api/v1/post.yml
152
+ I, [2019-06-02T22:12:41.630184 #61323] INFO -- : Write schema file: oas_docs/src/paths/api/v1/task.yml
153
+ I, [2019-06-02T22:12:41.633369 #61323] INFO -- : Write schema file: oas_docs/src/paths/task.yml
154
+ I, [2019-06-02T22:12:41.636323 #61323] INFO -- : Write schema file: oas_docs/src/paths/user.yml
155
+ I, [2019-06-02T22:12:41.642353 #61323] INFO -- : Write schema file: oas_docs/src/paths/rails_admin/main.yml
156
+ I, [2019-06-02T22:12:41.642381 #61323] INFO -- : [Generate OAS schema files (paths)] end
157
+ I, [2019-06-02T22:12:41.642664 #61323] INFO -- : Write schema file: oas_docs/src/externalDocs.yml
158
+ I, [2019-06-02T22:12:41.642993 #61323] INFO -- : Write schema file: oas_docs/src/servers.yml
159
+ I, [2019-06-02T22:12:41.643015 #61323] INFO -- : [Generate OAS schema files (components)] start
169
160
  I, [2019-06-02T22:12:41.643335 #61323] INFO -- : <From routes data>
170
161
  I, [2019-06-02T22:12:41.643421 #61323] INFO -- : <Update Components schema files (components/schemas)>
171
- I, [2019-06-02T22:12:41.645158 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/engine.yml
172
- I, [2019-06-02T22:12:41.645613 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/post.yml
173
- I, [2019-06-02T22:12:41.645987 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/task.yml
174
- I, [2019-06-02T22:12:41.646443 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/user.yml
175
- I, [2019-06-02T22:12:41.646833 #61323] INFO -- : Write schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/main.yml
176
- I, [2019-06-02T22:12:41.646853 #61323] INFO -- : [Generate Swagger schema files (components)] end
177
- I, [2019-06-02T22:12:41.646865 #61323] INFO -- : [Generate Swagger schema files] end
178
- I, [2019-06-02T22:12:41.646874 #61323] INFO -- : [Generate Swagger docs from schema files] start
179
- I, [2019-06-02T22:12:41.647400 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/openapi.yml
180
- I, [2019-06-02T22:12:41.648404 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/user.yml
181
- I, [2019-06-02T22:12:41.649983 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/api/v1/task.yml
182
- I, [2019-06-02T22:12:41.651386 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/api/v1/post.yml
183
- I, [2019-06-02T22:12:41.652608 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/api/v2/post.yml
184
- I, [2019-06-02T22:12:41.654068 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/task.yml
185
- I, [2019-06-02T22:12:41.654754 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/rails_admin/engine.yml
186
- I, [2019-06-02T22:12:41.658028 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/paths/rails_admin/main.yml
187
- I, [2019-06-02T22:12:41.658622 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/externalDocs.yml
188
- I, [2019-06-02T22:12:41.659216 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/tags.yml
189
- I, [2019-06-02T22:12:41.659715 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/user.yml
190
- I, [2019-06-02T22:12:41.660165 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/task.yml
191
- I, [2019-06-02T22:12:41.660528 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/engine.yml
192
- I, [2019-06-02T22:12:41.660788 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/main.yml
193
- I, [2019-06-02T22:12:41.661004 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/components/schemas/post.yml
194
- I, [2019-06-02T22:12:41.661261 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/info.yml
195
- I, [2019-06-02T22:12:41.661520 #61323] INFO -- : Use schema file: /Users/yukihirop/RubyProjects/r2-oas/oas_docs/src/servers.yml
196
- I, [2019-06-02T22:12:41.686435 #61323] INFO -- : [Generate Swagger docs from schema files] end
162
+ I, [2019-06-02T22:12:41.645158 #61323] INFO -- : Write schema file: oas_docs/src/components/schemas/engine.yml
163
+ I, [2019-06-02T22:12:41.645613 #61323] INFO -- : Write schema file: oas_docs/src/components/schemas/post.yml
164
+ I, [2019-06-02T22:12:41.645987 #61323] INFO -- : Write schema file: oas_docs/src/components/schemas/task.yml
165
+ I, [2019-06-02T22:12:41.646443 #61323] INFO -- : Write schema file: oas_docs/src/components/schemas/user.yml
166
+ I, [2019-06-02T22:12:41.646833 #61323] INFO -- : Write schema file: oas_docs/src/components/schemas/main.yml
167
+ I, [2019-06-02T22:12:41.646853 #61323] INFO -- : [Generate OAS schema files (components)] end
168
+ I, [2019-06-02T22:12:41.646865 #61323] INFO -- : [Generate OAS schema files] end
169
+ I, [2019-06-02T22:12:41.646874 #61323] INFO -- : [Generate OAS docs from schema files] start
170
+ I, [2019-06-02T22:12:41.647400 #61323] INFO -- : Use schema file: oas_docs/src/openapi.yml
171
+ I, [2019-06-02T22:12:41.648404 #61323] INFO -- : Use schema file: oas_docs/src/paths/user.yml
172
+ I, [2019-06-02T22:12:41.649983 #61323] INFO -- : Use schema file: oas_docs/src/paths/api/v1/task.yml
173
+ I, [2019-06-02T22:12:41.651386 #61323] INFO -- : Use schema file: oas_docs/src/paths/api/v1/post.yml
174
+ I, [2019-06-02T22:12:41.652608 #61323] INFO -- : Use schema file: oas_docs/src/paths/api/v2/post.yml
175
+ I, [2019-06-02T22:12:41.654068 #61323] INFO -- : Use schema file: oas_docs/src/paths/task.yml
176
+ I, [2019-06-02T22:12:41.654754 #61323] INFO -- : Use schema file: oas_docs/src/paths/rails_admin/engine.yml
177
+ I, [2019-06-02T22:12:41.658028 #61323] INFO -- : Use schema file: oas_docs/src/paths/rails_admin/main.yml
178
+ I, [2019-06-02T22:12:41.658622 #61323] INFO -- : Use schema file: oas_docs/src/externalDocs.yml
179
+ I, [2019-06-02T22:12:41.659216 #61323] INFO -- : Use schema file: oas_docs/src/tags.yml
180
+ I, [2019-06-02T22:12:41.659715 #61323] INFO -- : Use schema file: oas_docs/src/components/schemas/user.yml
181
+ I, [2019-06-02T22:12:41.660165 #61323] INFO -- : Use schema file: oas_docs/src/components/schemas/task.yml
182
+ I, [2019-06-02T22:12:41.660528 #61323] INFO -- : Use schema file: oas_docs/src/components/schemas/engine.yml
183
+ I, [2019-06-02T22:12:41.660788 #61323] INFO -- : Use schema file: oas_docs/src/components/schemas/main.yml
184
+ I, [2019-06-02T22:12:41.661004 #61323] INFO -- : Use schema file: oas_docs/src/components/schemas/post.yml
185
+ I, [2019-06-02T22:12:41.661261 #61323] INFO -- : Use schema file: oas_docs/src/info.yml
186
+ I, [2019-06-02T22:12:41.661520 #61323] INFO -- : Use schema file: oas_docs/src/servers.yml
187
+ I, [2019-06-02T22:12:41.686435 #61323] INFO -- : [Generate OAS docs from schema files] end
197
188
  I, [2019-06-02T22:12:41.686477 #61323] INFO -- : [R2-OAS] end
198
189
  ```
199
190
 
@@ -1,20 +1,27 @@
1
- ## Use Schema Namespace (default)
1
+ # Use Schema Namespace
2
+
3
+ ## Prepare
4
+
5
+ Add this line to your application's Gemfile:
2
6
 
3
7
  ```ruby
8
+ group :development do
9
+ gem 'r2-oas'
10
+ end
11
+ ```
12
+
13
+ Add the following settings to your rails project's `config/environments/development.rb`.
4
14
 
15
+ ```ruby
5
16
  require 'r2-oas'
6
17
 
7
18
  R2OAS.configure do |config|
8
- # default setting
9
- config.root_dir_path = "./oas_docs"
10
- config.schema_save_dir_name = "src"
11
- config.doc_save_file_name = "oas_doc.yml"
12
- # default
13
- config.use_tag_namespace = true
14
- config.use_schema_namespace = true # write here
15
- end
19
+ config.use_schema_namespace = true
20
+ end
16
21
  ```
17
22
 
23
+ ## Command
24
+
18
25
  ```bash
19
26
  $ bundle exec rake routes:oas:docs
20
27
  ```
@@ -88,37 +95,36 @@ Generate like this:
88
95
  ```
89
96
  oas_docs
90
97
  ├── schema
91
- │   ├── components
92
- │   │   └── schemas
93
-    │   ├── api
94
-    │   │   ├── v1
95
-    │   │   │   ├── post.yml
96
-    │   │   │   └── task.yml
97
-    │   │   └── v2
98
-    │   │   └── post.yml
99
-    │   ├── rails_admin
100
-    │   │   ├── engine.yml
101
-    │   │   └── main.yml
102
-    │   ├── task.yml
103
-    │   └── user.yml
104
- │   ├── externalDocs.yml
105
- │   ├── info.yml
106
- │   ├── openapi.yml
107
- │   ├── paths
108
- │   │   ├── api
109
- │   │   │   ├── v1
110
- │   │   │   │   ├── post.yml
111
- │   │   │   │   └── task.yml
112
- │   │   │   └── v2
113
- │   │   │   └── post.yml
114
- │   │   ├── rails_admin
115
- │   │   │   ├── engine.yml
116
- │   │   │   └── main.yml
117
- │   │   ├── task.yml
118
- │   │   └── user.yml
119
- │   ├── servers.yml
120
- │   └── tags.yml
121
- └── oas_doc.yml
98
+    ├── components
99
+    │   └── schemas
100
+    │   ├── api
101
+    │   │   ├── v1
102
+    │   │   │   ├── post.yml
103
+    │   │   │   └── task.yml
104
+    │   │   └── v2
105
+    │   │   └── post.yml
106
+    │   ├── rails_admin
107
+    │   │   ├── engine.yml
108
+    │   │   └── main.yml
109
+    │   ├── task.yml
110
+    │   └── user.yml
111
+    ├── externalDocs.yml
112
+    ├── info.yml
113
+    ├── openapi.yml
114
+    ├── paths
115
+    │   ├── api
116
+    │   │   ├── v1
117
+    │   │   │   ├── post.yml
118
+    │   │   │   └── task.yml
119
+    │   │   └── v2
120
+    │   │   └── post.yml
121
+    │   ├── rails_admin
122
+    │   │   ├── engine.yml
123
+    │   │   └── main.yml
124
+    │   ├── task.yml
125
+    │   └── user.yml
126
+    ├── servers.yml
127
+    └── tags.yml
122
128
  ```
123
129
 
124
130
  ## Do not Use Tag Namespace
@@ -172,5 +178,4 @@ oas_docs
172
178
  │   │   └── user.yml
173
179
  │   ├── servers.yml
174
180
  │   └── tags.yml
175
- └── oas_doc.yml
176
181
  ```