sleeping_king_studios-docs 0.2.0 → 0.3.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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/README.md +30 -14
  4. data/lib/sleeping_king_studios/docs/data/base.rb +24 -4
  5. data/lib/sleeping_king_studios/docs/data/constant_object.rb +24 -0
  6. data/lib/sleeping_king_studios/docs/data/metadata.rb +0 -2
  7. data/lib/sleeping_king_studios/docs/data/method_object.rb +32 -0
  8. data/lib/sleeping_king_studios/docs/data/module_object.rb +1 -1
  9. data/lib/sleeping_king_studios/docs/data/namespace_object.rb +26 -2
  10. data/lib/sleeping_king_studios/docs/data/see_tags/reference_tag.rb +1 -1
  11. data/lib/sleeping_king_studios/docs/data/types/parser.rb +5 -5
  12. data/lib/sleeping_king_studios/docs/data/types/type.rb +3 -6
  13. data/lib/sleeping_king_studios/docs/errors/outdated_documentation.rb +79 -0
  14. data/lib/sleeping_king_studios/docs/errors/registry_error.rb +13 -0
  15. data/lib/sleeping_king_studios/docs/errors.rb +4 -0
  16. data/lib/sleeping_king_studios/docs/jekyll/commands/backfill_versions.rb +177 -0
  17. data/lib/sleeping_king_studios/docs/jekyll/commands/check.rb +347 -0
  18. data/lib/sleeping_king_studios/docs/jekyll/commands/clobber.rb +99 -0
  19. data/lib/sleeping_king_studios/docs/jekyll/commands/document_version.rb +217 -0
  20. data/lib/sleeping_king_studios/docs/jekyll/commands/generate.rb +202 -0
  21. data/lib/sleeping_king_studios/docs/jekyll/commands/install.rb +271 -0
  22. data/lib/sleeping_king_studios/docs/jekyll/commands/install_templates.rb +125 -0
  23. data/lib/sleeping_king_studios/docs/jekyll/commands/install_workflow.rb +55 -0
  24. data/lib/sleeping_king_studios/docs/jekyll/commands/reference.rb +158 -0
  25. data/lib/sleeping_king_studios/docs/jekyll/commands/update.rb +32 -0
  26. data/lib/sleeping_king_studios/docs/jekyll/commands.rb +44 -0
  27. data/lib/sleeping_king_studios/docs/jekyll/generators/data_generator.rb +85 -0
  28. data/lib/sleeping_king_studios/docs/jekyll/generators/reference_generator.rb +40 -0
  29. data/lib/sleeping_king_studios/docs/jekyll/generators/version_generator.rb +66 -0
  30. data/lib/sleeping_king_studios/docs/jekyll/generators.rb +15 -0
  31. data/lib/sleeping_king_studios/docs/jekyll.rb +26 -1
  32. data/lib/sleeping_king_studios/docs/version.rb +1 -1
  33. data/lib/sleeping_king_studios/docs/yard/build.rb +42 -0
  34. data/lib/sleeping_king_studios/docs/{commands → yard}/parse.rb +18 -11
  35. data/lib/sleeping_king_studios/docs/yard/registry.rb +54 -0
  36. data/lib/sleeping_king_studios/docs/{registry_query.rb → yard/registry_query.rb} +9 -7
  37. data/lib/sleeping_king_studios/docs/yard.rb +13 -0
  38. data/lib/sleeping_king_studios/docs.rb +29 -17
  39. metadata +66 -83
  40. data/lib/sleeping_king_studios/docs/commands/generate.rb +0 -268
  41. data/lib/sleeping_king_studios/docs/commands/generators/base.rb +0 -97
  42. data/lib/sleeping_king_studios/docs/commands/generators/data_generator.rb +0 -68
  43. data/lib/sleeping_king_studios/docs/commands/generators/reference_generator.rb +0 -59
  44. data/lib/sleeping_king_studios/docs/commands/generators.rb +0 -15
  45. data/lib/sleeping_king_studios/docs/commands/installation/install_jekyll.rb +0 -273
  46. data/lib/sleeping_king_studios/docs/commands/installation/install_templates.rb +0 -125
  47. data/lib/sleeping_king_studios/docs/commands/installation/install_workflow.rb +0 -121
  48. data/lib/sleeping_king_studios/docs/commands/installation.rb +0 -15
  49. data/lib/sleeping_king_studios/docs/commands/write_file.rb +0 -89
  50. data/lib/sleeping_king_studios/docs/commands.rb +0 -14
  51. data/lib/sleeping_king_studios/docs/registry.rb +0 -22
  52. data/lib/sleeping_king_studios/docs/tasks/base.rb +0 -20
  53. data/lib/sleeping_king_studios/docs/tasks/generate.rb +0 -39
  54. data/lib/sleeping_king_studios/docs/tasks/installation/install_jekyll.rb +0 -67
  55. data/lib/sleeping_king_studios/docs/tasks/installation/install_templates.rb +0 -39
  56. data/lib/sleeping_king_studios/docs/tasks/installation/install_workflow.rb +0 -53
  57. data/lib/sleeping_king_studios/docs/tasks/installation.rb +0 -8
  58. data/lib/sleeping_king_studios/docs/tasks/update.rb +0 -35
  59. data/lib/sleeping_king_studios/docs/tasks.rb +0 -14
  60. data/lib/sleeping_king_studios/docs/templates/config.yml.erb +0 -24
  61. data/lib/sleeping_king_studios/docs/templates/deploy-pages.yml.erb +0 -67
  62. data/lib/sleeping_king_studios/docs/templates/includes/breadcrumbs.md +0 -7
  63. data/lib/sleeping_king_studios/docs/templates/includes/reference/attribute.md +0 -23
  64. data/lib/sleeping_king_studios/docs/templates/includes/reference/attributes/heading.md +0 -15
  65. data/lib/sleeping_king_studios/docs/templates/includes/reference/class.md +0 -27
  66. data/lib/sleeping_king_studios/docs/templates/includes/reference/constant.md +0 -8
  67. data/lib/sleeping_king_studios/docs/templates/includes/reference/constants/heading.md +0 -6
  68. data/lib/sleeping_king_studios/docs/templates/includes/reference/constants/inherited.md +0 -4
  69. data/lib/sleeping_king_studios/docs/templates/includes/reference/constants/overview.md +0 -60
  70. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/breadcrumbs.md +0 -21
  71. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/class_attributes.md +0 -9
  72. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/class_methods.md +0 -9
  73. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/constants.md +0 -9
  74. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/constructor.md +0 -12
  75. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/definitions.md +0 -23
  76. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/details.md +0 -34
  77. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/instance_attributes.md +0 -9
  78. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/instance_methods.md +0 -17
  79. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/overview.md +0 -74
  80. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/subclasses.md +0 -10
  81. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_attributes.md +0 -10
  82. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_methods.md +0 -10
  83. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/constants.md +0 -10
  84. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_attributes.md +0 -10
  85. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_methods.md +0 -10
  86. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/overview.md +0 -41
  87. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents.md +0 -27
  88. data/lib/sleeping_king_studios/docs/templates/includes/reference/method.md +0 -27
  89. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/aliases.md +0 -4
  90. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/heading.md +0 -14
  91. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/inherited.md +0 -4
  92. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/overload.md +0 -18
  93. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/overloads.md +0 -12
  94. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/overview.md +0 -41
  95. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/parameters.md +0 -31
  96. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/post_overview.md +0 -51
  97. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/raises.md +0 -14
  98. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/return_types.md +0 -9
  99. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/returns.md +0 -14
  100. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/yields.md +0 -42
  101. data/lib/sleeping_king_studios/docs/templates/includes/reference/module.md +0 -23
  102. data/lib/sleeping_king_studios/docs/templates/includes/reference/namespace.md +0 -33
  103. data/lib/sleeping_king_studios/docs/templates/includes/reference/parent_link.md +0 -6
  104. data/lib/sleeping_king_studios/docs/templates/includes/reference/reference_link.md +0 -7
  105. data/lib/sleeping_king_studios/docs/templates/includes/reference/see_link.md +0 -7
  106. data/lib/sleeping_king_studios/docs/templates/includes/reference/type.md +0 -14
  107. data/lib/sleeping_king_studios/docs/templates/includes/reference/type_list.md +0 -4
  108. data/lib/sleeping_king_studios/docs/templates/includes/reference/types/array_type.md +0 -1
  109. data/lib/sleeping_king_studios/docs/templates/includes/reference/types/hash_type.md +0 -1
  110. data/lib/sleeping_king_studios/docs/templates/includes/reference/types/ordered_type.md +0 -1
  111. data/lib/sleeping_king_studios/docs/templates/pages/index.md.erb +0 -22
  112. data/lib/sleeping_king_studios/docs/templates/pages/reference.md.erb +0 -14
  113. data/lib/sleeping_king_studios/docs/templates/pages/versions.md.erb +0 -13
@@ -1,268 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'cuprum/command'
4
- require 'sleeping_king_studios/tools/toolbelt'
5
-
6
- require 'sleeping_king_studios/docs/commands'
7
-
8
- module SleepingKingStudios::Docs::Commands
9
- # Generates YARD documentation files.
10
- class Generate < SleepingKingStudios::Docs::Commands::Generators::Base # rubocop:disable Metrics/ClassLength
11
- # @overload initialize(docs_path:, **options)
12
- # @param docs_path [String] the directory path for generating the
13
- # documentation files.
14
- # @param options [Hash] the configured options for the generator.
15
- #
16
- # @option options dry_run [Boolean] if true, does not make any changes to
17
- # the filesystem.
18
- # @option options force [Boolean] if true, overwrites any existing files.
19
- # @option options version [String] the code version for the generated
20
- # documentation.
21
- # @option options verbose [Boolean] if true, prints status messages to
22
- # STDOUT.
23
- def initialize(
24
- docs_path:,
25
- error_stream: $stderr,
26
- output_stream: $stdout,
27
- **options
28
- )
29
- super(docs_path:, **options)
30
-
31
- @error_stream = error_stream
32
- @output_stream = output_stream
33
- end
34
-
35
- private
36
-
37
- attr_reader :failures
38
-
39
- def build_constant(native:)
40
- SleepingKingStudios::Docs::Data::ConstantObject.new(native:)
41
- end
42
-
43
- def build_class(native:)
44
- SleepingKingStudios::Docs::Data::ClassObject.new(native:)
45
- end
46
-
47
- def build_method(native:)
48
- SleepingKingStudios::Docs::Data::MethodObject.new(native:)
49
- end
50
-
51
- def build_module(native:)
52
- SleepingKingStudios::Docs::Data::ModuleObject.new(native:)
53
- end
54
-
55
- def build_root_namespace(native:)
56
- SleepingKingStudios::Docs::Data::RootObject.new(native:)
57
- end
58
-
59
- def data_command
60
- @data_command ||=
61
- SleepingKingStudios::Docs::Commands::Generators::DataGenerator
62
- .new(docs_path:, **options)
63
- end
64
-
65
- def generate_classes
66
- puts "\nGenerating Classes:" if verbose? && !registry_classes.empty?
67
-
68
- registry_classes.each do |native|
69
- data_object = build_class(native:)
70
-
71
- puts "- #{data_object.name}" if verbose?
72
-
73
- generate_data_file(data_object:)
74
- generate_reference_file(data_object:)
75
- end
76
- end
77
-
78
- def generate_constants
79
- puts "\nGenerating Constants:" if verbose? && !registry_constants.empty?
80
-
81
- registry_constants.each do |native|
82
- data_object = build_constant(native:)
83
-
84
- puts "- #{data_object.name}" if verbose?
85
-
86
- generate_data_file(data_object:)
87
- end
88
- end
89
-
90
- def generate_data_file(data_object:, **options)
91
- report_result(
92
- command: data_command,
93
- data_object:,
94
- result: data_command.call(data_object:, **options),
95
- **options
96
- )
97
- end
98
-
99
- def generate_methods
100
- puts "\nGenerating Methods:" if verbose? && !registry_methods.empty?
101
-
102
- registry_methods.each do |native|
103
- data_object = build_method(native:)
104
-
105
- puts "- #{data_object.name}" if verbose?
106
-
107
- generate_data_file(data_object:)
108
- end
109
- end
110
-
111
- def generate_modules
112
- puts "\nGenerating Modules:" if verbose? && !registry_modules.empty?
113
-
114
- registry_modules.each do |native|
115
- data_object = build_module(native:)
116
-
117
- puts "- #{data_object.name}" if verbose?
118
-
119
- generate_data_file(data_object:)
120
- generate_reference_file(data_object:)
121
- end
122
- end
123
-
124
- def generate_reference_file(data_object:, **options)
125
- report_result(
126
- command: reference_command,
127
- data_object:,
128
- result: reference_command.call(
129
- data_object:,
130
- **options
131
- ),
132
- **options
133
- )
134
- end
135
-
136
- def generate_root_namespace
137
- puts 'Generating Root Namespace:' if verbose?
138
-
139
- data_object = build_root_namespace(native: registry_root)
140
-
141
- puts '- root namespace' if verbose?
142
-
143
- generate_data_file(data_object:, data_type: :namespace)
144
- end
145
-
146
- def parse_registry(file_path:)
147
- SleepingKingStudios::Docs::Commands::Parse.new.call(file_path)
148
- end
149
-
150
- def process(file_path: nil)
151
- step { parse_registry(file_path:) }
152
-
153
- @failures = []
154
-
155
- generate_root_namespace
156
- generate_classes
157
- generate_constants
158
- generate_methods
159
- generate_modules
160
-
161
- report_all_failures
162
-
163
- nil
164
- end
165
-
166
- def puts(string)
167
- output_stream.puts(string)
168
- end
169
-
170
- def reference_command
171
- @reference_command ||=
172
- SleepingKingStudios::Docs::Commands::Generators::ReferenceGenerator
173
- .new(docs_path:, **options)
174
- end
175
-
176
- def registry
177
- SleepingKingStudios::Docs::Registry.instance
178
- end
179
-
180
- def registry_classes
181
- registry
182
- .select { |obj| obj.type == :class }
183
- .reject { |obj| obj.tags.any? { |tag| tag.tag_name == 'private' } }
184
- .sort_by(&:path)
185
- end
186
-
187
- def registry_constants
188
- registry
189
- .select { |obj| obj.type == :constant && obj.visibility == :public }
190
- .reject { |obj| obj.tags.any? { |tag| tag.tag_name == 'private' } }
191
- .sort_by(&:path)
192
- end
193
-
194
- def registry_methods
195
- registry
196
- .select { |obj| obj.type == :method && obj.visibility == :public }
197
- .reject { |obj| obj.tags.any? { |tag| tag.tag_name == 'private' } }
198
- .reject(&:is_alias?)
199
- .sort_by(&:path)
200
- end
201
-
202
- def registry_modules
203
- registry
204
- .select { |obj| obj.type == :module }
205
- .reject { |obj| obj.tags.any? { |tag| tag.tag_name == 'private' } }
206
- .sort_by(&:path)
207
- end
208
-
209
- def registry_root
210
- registry
211
- .find { |obj| obj.type == :root }
212
- end
213
-
214
- def report_all_failures
215
- return if failures.empty?
216
- return unless verbose?
217
-
218
- warn "\nFailures:"
219
-
220
- failures.each do |failure|
221
- report_failure(**failure, nested: true)
222
- end
223
- end
224
-
225
- def report_failure(file_path:, result:, nested: false)
226
- message = nested ? ' - ' : ''
227
- message +=
228
- "FAILURE: unable to write file to #{file_path} - " \
229
- "#{result.error.class}: #{result.error.message}"
230
-
231
- warn message
232
- end
233
-
234
- def report_result(command:, data_object:, result:, data_type: nil) # rubocop:disable Metrics/MethodLength
235
- data_type ||= data_object_type(data_object:)
236
- file_path = command.file_path(
237
- data_object:,
238
- data_type:
239
- )
240
-
241
- if result.success?
242
- report_success(file_path:)
243
- else
244
- failures << { file_path:, result: }
245
-
246
- report_failure(file_path:, result:, nested: verbose?)
247
- end
248
-
249
- result
250
- end
251
-
252
- def report_success(file_path:)
253
- return unless verbose?
254
-
255
- message = " - SUCCESS: file written to #{file_path}"
256
-
257
- puts message
258
- end
259
-
260
- def tools
261
- SleepingKingStudios::Tools::Toolbelt.instance
262
- end
263
-
264
- def warn(string)
265
- error_stream.puts(string)
266
- end
267
- end
268
- end
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'cuprum/command'
4
- require 'cuprum/exception_handling'
5
- require 'sleeping_king_studios/tools/toolbelt'
6
-
7
- require 'sleeping_king_studios/docs/commands/generators'
8
-
9
- module SleepingKingStudios::Docs::Commands::Generators
10
- # Abstract base class for writing generator classes.
11
- class Base < Cuprum::Command
12
- include Cuprum::ExceptionHandling
13
-
14
- # @param docs_path [String] the directory path for generating the
15
- # documentation files.
16
- # @param options [Hash] the configured options for the generator.
17
- #
18
- # @option options dry_run [Boolean] if true, does not make any changes to
19
- # the filesystem.
20
- # @option options force [Boolean] if true, overwrites any existing files.
21
- # @option options version [String] the code version for the generated
22
- # documentation.
23
- # @option options verbose [Boolean] if true, prints status messages to
24
- # STDOUT.
25
- def initialize(docs_path:, **options)
26
- super()
27
-
28
- @docs_path = docs_path
29
- @options = default_options.merge(options)
30
- end
31
-
32
- # @return [String] the directory path for generating the documentation
33
- # files.
34
- attr_reader :docs_path
35
-
36
- # @return [Hash] the configured options for the generator.
37
- attr_reader :options
38
-
39
- # @return [Boolean] if true, does not make any changes to the filesystem.
40
- def dry_run?
41
- @options[:dry_run]
42
- end
43
-
44
- # @return [Boolean] if true, overwrites any existing files.
45
- def force?
46
- @options[:force]
47
- end
48
-
49
- # @return [String] the relative path to the Jekyll templates for each data
50
- # type.
51
- def template_path
52
- @options.fetch(:template_path, 'reference')
53
- end
54
-
55
- # @return [Boolean] if true, prints status messages to STDOUT.
56
- def verbose?
57
- @options[:verbose]
58
- end
59
-
60
- # @return [String] the code version for the generated documentation.
61
- def version
62
- @options[:version]
63
- end
64
-
65
- private
66
-
67
- attr_reader :error_stream
68
-
69
- attr_reader :output_stream
70
-
71
- def data_object_type(data_object:)
72
- data_object
73
- .class
74
- .name
75
- .split('::')
76
- .last
77
- .then { |str| str[0...-6] }
78
- .then { |str| tools.string_tools.underscore(str) }
79
- end
80
-
81
- def default_options
82
- {
83
- dry_run: false,
84
- force: false,
85
- verbose: false
86
- }
87
- end
88
-
89
- def tools
90
- SleepingKingStudios::Tools::Toolbelt.instance
91
- end
92
-
93
- def version_string
94
- version || '*'
95
- end
96
- end
97
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'yaml'
4
-
5
- require 'sleeping_king_studios/tools/toolbelt'
6
-
7
- require 'sleeping_king_studios/docs/commands/generators'
8
-
9
- module SleepingKingStudios::Docs::Commands::Generators
10
- # Generator for writing data files.
11
- class DataGenerator < SleepingKingStudios::Docs::Commands::Generators::Base
12
- # Determines the generated file path for the given data object.
13
- #
14
- # @param data_object [SleepingKingStudios::Docs::Data::Base] the data object
15
- # for which the file is generated.
16
- # @param data_type [String, Symbol] the type of data file to generate.
17
- #
18
- # @return [String] the qualified path to the generated file.
19
- def file_path(data_object:, data_type: nil)
20
- data_type ||= data_object_type(data_object:)
21
-
22
- File.join(dir_path(data_type), "#{data_object.data_path}.yml")
23
- end
24
-
25
- private
26
-
27
- def dir_path(data_type)
28
- scope = "_#{tools.string_tools.pluralize(data_type.to_s)}"
29
-
30
- if version
31
- File.join(docs_path, scope, "version--#{version}")
32
- else
33
- File.join(docs_path, scope)
34
- end
35
- end
36
-
37
- def file_data(data_object:)
38
- data_object
39
- .as_json
40
- .merge('version' => version_string)
41
- end
42
-
43
- def process(data_object:, data_type: nil)
44
- data = file_data(data_object:)
45
- data_type ||= data_object_type(data_object:)
46
-
47
- return success(nil) if dry_run?
48
-
49
- write_command.call(
50
- contents: YAML.dump(data),
51
- file_path: file_path(
52
- data_object:,
53
- data_type:
54
- )
55
- )
56
- end
57
-
58
- def tools
59
- SleepingKingStudios::Tools::Toolbelt.instance
60
- end
61
-
62
- def write_command
63
- @write_command ||=
64
- SleepingKingStudios::Docs::Commands::WriteFile
65
- .new(force: force?)
66
- end
67
- end
68
- end
@@ -1,59 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'sleeping_king_studios/docs/commands/generators'
4
-
5
- module SleepingKingStudios::Docs::Commands::Generators
6
- # Generator for writing reference files.
7
- class ReferenceGenerator <
8
- SleepingKingStudios::Docs::Commands::Generators::Base
9
- # @overload file_path(data_object:)
10
- # Determines the generated file path for the given data object.
11
- #
12
- # @param data_object [SleepingKingStudios::Docs::Data::Base] the data
13
- # object for which the file is generated.
14
- #
15
- # @return [String] the qualified path to the generated file.
16
- def file_path(data_object:, data_type: nil) # rubocop:disable Lint/UnusedMethodArgument
17
- File.join(dir_path, "#{data_object.data_path}.md")
18
- end
19
-
20
- private
21
-
22
- def dir_path
23
- if version
24
- File.join(docs_path, 'versions', version, 'reference')
25
- else
26
- File.join(docs_path, 'reference')
27
- end
28
- end
29
-
30
- def process(data_object:, data_type: nil)
31
- data_type ||= data_object_type(data_object:)
32
- contents = template(data_object:, data_type:)
33
-
34
- return success(nil) if dry_run?
35
-
36
- write_command.call(
37
- contents:,
38
- file_path: file_path(data_object:)
39
- )
40
- end
41
-
42
- def template(data_object:, data_type:)
43
- <<~MARKDOWN
44
- ---
45
- data_path: "#{data_object.data_path}"
46
- version: "#{version_string}"
47
- ---
48
-
49
- {% include #{template_path}/#{data_type}.md %}
50
- MARKDOWN
51
- end
52
-
53
- def write_command
54
- @write_command ||=
55
- SleepingKingStudios::Docs::Commands::WriteFile
56
- .new(force: force?)
57
- end
58
- end
59
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'sleeping_king_studios/docs/commands'
4
-
5
- module SleepingKingStudios::Docs::Commands
6
- # Namespace for generator commands, which write docs to the filesystem.
7
- module Generators
8
- autoload :Base,
9
- 'sleeping_king_studios/docs/commands/generators/base'
10
- autoload :DataGenerator,
11
- 'sleeping_king_studios/docs/commands/generators/data_generator'
12
- autoload :ReferenceGenerator,
13
- 'sleeping_king_studios/docs/commands/generators/reference_generator'
14
- end
15
- end