sleeping_king_studios-docs 0.2.1 → 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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -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/type.rb +3 -6
  12. data/lib/sleeping_king_studios/docs/errors/outdated_documentation.rb +79 -0
  13. data/lib/sleeping_king_studios/docs/errors/registry_error.rb +13 -0
  14. data/lib/sleeping_king_studios/docs/errors.rb +4 -0
  15. data/lib/sleeping_king_studios/docs/jekyll/commands/backfill_versions.rb +177 -0
  16. data/lib/sleeping_king_studios/docs/jekyll/commands/check.rb +347 -0
  17. data/lib/sleeping_king_studios/docs/jekyll/commands/clobber.rb +99 -0
  18. data/lib/sleeping_king_studios/docs/jekyll/commands/document_version.rb +217 -0
  19. data/lib/sleeping_king_studios/docs/jekyll/commands/generate.rb +202 -0
  20. data/lib/sleeping_king_studios/docs/jekyll/commands/install.rb +271 -0
  21. data/lib/sleeping_king_studios/docs/jekyll/commands/install_templates.rb +125 -0
  22. data/lib/sleeping_king_studios/docs/jekyll/commands/install_workflow.rb +55 -0
  23. data/lib/sleeping_king_studios/docs/jekyll/commands/reference.rb +158 -0
  24. data/lib/sleeping_king_studios/docs/jekyll/commands/update.rb +32 -0
  25. data/lib/sleeping_king_studios/docs/jekyll/commands.rb +44 -0
  26. data/lib/sleeping_king_studios/docs/jekyll/generators/data_generator.rb +85 -0
  27. data/lib/sleeping_king_studios/docs/jekyll/generators/reference_generator.rb +40 -0
  28. data/lib/sleeping_king_studios/docs/jekyll/generators/version_generator.rb +66 -0
  29. data/lib/sleeping_king_studios/docs/jekyll/generators.rb +15 -0
  30. data/lib/sleeping_king_studios/docs/jekyll.rb +26 -1
  31. data/lib/sleeping_king_studios/docs/version.rb +2 -2
  32. data/lib/sleeping_king_studios/docs/yard/build.rb +42 -0
  33. data/lib/sleeping_king_studios/docs/{commands → yard}/parse.rb +18 -11
  34. data/lib/sleeping_king_studios/docs/yard/registry.rb +54 -0
  35. data/lib/sleeping_king_studios/docs/{registry_query.rb → yard/registry_query.rb} +9 -7
  36. data/lib/sleeping_king_studios/docs/yard.rb +13 -0
  37. data/lib/sleeping_king_studios/docs.rb +29 -17
  38. metadata +54 -86
  39. data/lib/sleeping_king_studios/docs/commands/generate.rb +0 -268
  40. data/lib/sleeping_king_studios/docs/commands/generators/base.rb +0 -97
  41. data/lib/sleeping_king_studios/docs/commands/generators/data_generator.rb +0 -68
  42. data/lib/sleeping_king_studios/docs/commands/generators/reference_generator.rb +0 -59
  43. data/lib/sleeping_king_studios/docs/commands/generators.rb +0 -15
  44. data/lib/sleeping_king_studios/docs/commands/installation/install_jekyll.rb +0 -273
  45. data/lib/sleeping_king_studios/docs/commands/installation/install_templates.rb +0 -125
  46. data/lib/sleeping_king_studios/docs/commands/installation/install_workflow.rb +0 -121
  47. data/lib/sleeping_king_studios/docs/commands/installation.rb +0 -15
  48. data/lib/sleeping_king_studios/docs/commands/write_file.rb +0 -89
  49. data/lib/sleeping_king_studios/docs/commands.rb +0 -14
  50. data/lib/sleeping_king_studios/docs/registry.rb +0 -22
  51. data/lib/sleeping_king_studios/docs/tasks/base.rb +0 -20
  52. data/lib/sleeping_king_studios/docs/tasks/generate.rb +0 -39
  53. data/lib/sleeping_king_studios/docs/tasks/installation/install_jekyll.rb +0 -67
  54. data/lib/sleeping_king_studios/docs/tasks/installation/install_templates.rb +0 -39
  55. data/lib/sleeping_king_studios/docs/tasks/installation/install_workflow.rb +0 -53
  56. data/lib/sleeping_king_studios/docs/tasks/installation.rb +0 -8
  57. data/lib/sleeping_king_studios/docs/tasks/update.rb +0 -35
  58. data/lib/sleeping_king_studios/docs/tasks.rb +0 -14
  59. data/lib/sleeping_king_studios/docs/templates/config.yml.erb +0 -24
  60. data/lib/sleeping_king_studios/docs/templates/deploy-pages.yml.erb +0 -67
  61. data/lib/sleeping_king_studios/docs/templates/includes/breadcrumbs.md +0 -7
  62. data/lib/sleeping_king_studios/docs/templates/includes/reference/attribute.md +0 -23
  63. data/lib/sleeping_king_studios/docs/templates/includes/reference/attributes/heading.md +0 -15
  64. data/lib/sleeping_king_studios/docs/templates/includes/reference/class.md +0 -27
  65. data/lib/sleeping_king_studios/docs/templates/includes/reference/constant.md +0 -8
  66. data/lib/sleeping_king_studios/docs/templates/includes/reference/constants/heading.md +0 -6
  67. data/lib/sleeping_king_studios/docs/templates/includes/reference/constants/inherited.md +0 -4
  68. data/lib/sleeping_king_studios/docs/templates/includes/reference/constants/overview.md +0 -60
  69. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/breadcrumbs.md +0 -21
  70. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/class_attributes.md +0 -9
  71. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/class_methods.md +0 -9
  72. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/constants.md +0 -9
  73. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/constructor.md +0 -12
  74. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/definitions.md +0 -23
  75. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/details.md +0 -34
  76. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/instance_attributes.md +0 -9
  77. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/instance_methods.md +0 -17
  78. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/overview.md +0 -74
  79. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/subclasses.md +0 -10
  80. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_attributes.md +0 -10
  81. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_methods.md +0 -10
  82. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/constants.md +0 -10
  83. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_attributes.md +0 -10
  84. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_methods.md +0 -10
  85. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/overview.md +0 -41
  86. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents.md +0 -27
  87. data/lib/sleeping_king_studios/docs/templates/includes/reference/method.md +0 -27
  88. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/aliases.md +0 -4
  89. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/heading.md +0 -14
  90. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/inherited.md +0 -4
  91. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/overload.md +0 -18
  92. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/overloads.md +0 -12
  93. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/overview.md +0 -41
  94. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/parameters.md +0 -31
  95. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/post_overview.md +0 -51
  96. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/raises.md +0 -14
  97. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/return_types.md +0 -9
  98. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/returns.md +0 -14
  99. data/lib/sleeping_king_studios/docs/templates/includes/reference/methods/yields.md +0 -42
  100. data/lib/sleeping_king_studios/docs/templates/includes/reference/module.md +0 -23
  101. data/lib/sleeping_king_studios/docs/templates/includes/reference/namespace.md +0 -33
  102. data/lib/sleeping_king_studios/docs/templates/includes/reference/parent_link.md +0 -6
  103. data/lib/sleeping_king_studios/docs/templates/includes/reference/reference_link.md +0 -7
  104. data/lib/sleeping_king_studios/docs/templates/includes/reference/see_link.md +0 -7
  105. data/lib/sleeping_king_studios/docs/templates/includes/reference/type.md +0 -14
  106. data/lib/sleeping_king_studios/docs/templates/includes/reference/type_list.md +0 -4
  107. data/lib/sleeping_king_studios/docs/templates/includes/reference/types/array_type.md +0 -1
  108. data/lib/sleeping_king_studios/docs/templates/includes/reference/types/hash_type.md +0 -1
  109. data/lib/sleeping_king_studios/docs/templates/includes/reference/types/ordered_type.md +0 -1
  110. data/lib/sleeping_king_studios/docs/templates/pages/index.md.erb +0 -22
  111. data/lib/sleeping_king_studios/docs/templates/pages/reference.md.erb +0 -14
  112. data/lib/sleeping_king_studios/docs/templates/pages/versions.md.erb +0 -13
@@ -1,27 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'cuprum/cli'
4
+ require 'sleeping_king_studios/tools'
5
+
3
6
  # Hic iacet Arthurus, rex quondam, rexque futurus.
4
7
  module SleepingKingStudios
5
8
  # Tooling for working with YARD documentation.
6
9
  module Docs
7
- class << self
8
- # @return [String] the absolute path to the gem directory.
9
- def gem_path
10
- pattern = /#{File.join('', 'lib', 'sleeping_king_studios', '')}?\z/
11
-
12
- __dir__.sub(pattern, '')
13
- end
14
-
15
- # @return [String] The current version of the gem.
16
- def version
17
- VERSION
18
- end
10
+ autoload :Data, 'sleeping_king_studios/docs/data'
11
+ autoload :Errors, 'sleeping_king_studios/docs/errors'
12
+ autoload :Jekyll, 'sleeping_king_studios/docs/jekyll'
13
+ autoload :Yard, 'sleeping_king_studios/docs/yard'
14
+
15
+ @initializer = SleepingKingStudios::Tools::Toolbox::Initializer.new do
16
+ Cuprum::Cli.initializer.call
17
+
18
+ SleepingKingStudios::Tools.initializer.call
19
19
  end
20
20
 
21
- autoload :Commands, 'sleeping_king_studios/docs/commands'
22
- autoload :Data, 'sleeping_king_studios/docs/data'
23
- autoload :Errors, 'sleeping_king_studios/docs/errors'
24
- autoload :Registry, 'sleeping_king_studios/docs/registry'
25
- autoload :RegistryQuery, 'sleeping_king_studios/docs/registry_query'
21
+ # @return [String] the absolute path to the gem directory.
22
+ def self.gem_path
23
+ pattern = /#{File.join('', 'lib', 'sleeping_king_studios', '')}?\z/
24
+
25
+ __dir__.sub(pattern, '')
26
+ end
27
+
28
+ # @return [SleepingKingStudios::Tools::Toolbox::Initializer] the initializer
29
+ # for the module.
30
+ def self.initializer
31
+ @initializer
32
+ end
33
+
34
+ # @return [String] The current version of the gem.
35
+ def self.version
36
+ VERSION
37
+ end
26
38
  end
27
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sleeping_king_studios-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob "Merlin" Smith
@@ -29,6 +29,20 @@ dependencies:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
31
  version: 1.3.1
32
+ - !ruby/object:Gem::Dependency
33
+ name: cuprum-cli
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '0.1'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: '0.1'
32
46
  - !ruby/object:Gem::Dependency
33
47
  name: erubi
34
48
  requirement: !ruby/object:Gem::Requirement
@@ -44,25 +58,33 @@ dependencies:
44
58
  - !ruby/object:Gem::Version
45
59
  version: '1.13'
46
60
  - !ruby/object:Gem::Dependency
47
- name: sleeping_king_studios-tools
61
+ name: plumbum
48
62
  requirement: !ruby/object:Gem::Requirement
49
63
  requirements:
50
64
  - - "~>"
51
65
  - !ruby/object:Gem::Version
52
- version: '1.2'
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: 1.2.1
66
+ version: '0.1'
56
67
  type: :runtime
57
68
  prerelease: false
58
69
  version_requirements: !ruby/object:Gem::Requirement
59
70
  requirements:
60
71
  - - "~>"
61
72
  - !ruby/object:Gem::Version
62
- version: '1.2'
63
- - - ">="
73
+ version: '0.1'
74
+ - !ruby/object:Gem::Dependency
75
+ name: sleeping_king_studios-tools
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.3'
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
64
86
  - !ruby/object:Gem::Version
65
- version: 1.2.1
87
+ version: '1.3'
66
88
  - !ruby/object:Gem::Dependency
67
89
  name: thor
68
90
  requirement: !ruby/object:Gem::Requirement
@@ -119,18 +141,6 @@ files:
119
141
  - LICENSE
120
142
  - README.md
121
143
  - lib/sleeping_king_studios/docs.rb
122
- - lib/sleeping_king_studios/docs/commands.rb
123
- - lib/sleeping_king_studios/docs/commands/generate.rb
124
- - lib/sleeping_king_studios/docs/commands/generators.rb
125
- - lib/sleeping_king_studios/docs/commands/generators/base.rb
126
- - lib/sleeping_king_studios/docs/commands/generators/data_generator.rb
127
- - lib/sleeping_king_studios/docs/commands/generators/reference_generator.rb
128
- - lib/sleeping_king_studios/docs/commands/installation.rb
129
- - lib/sleeping_king_studios/docs/commands/installation/install_jekyll.rb
130
- - lib/sleeping_king_studios/docs/commands/installation/install_templates.rb
131
- - lib/sleeping_king_studios/docs/commands/installation/install_workflow.rb
132
- - lib/sleeping_king_studios/docs/commands/parse.rb
133
- - lib/sleeping_king_studios/docs/commands/write_file.rb
134
144
  - lib/sleeping_king_studios/docs/data.rb
135
145
  - lib/sleeping_king_studios/docs/data/base.rb
136
146
  - lib/sleeping_king_studios/docs/data/class_object.rb
@@ -163,77 +173,35 @@ files:
163
173
  - lib/sleeping_king_studios/docs/errors/file_not_found.rb
164
174
  - lib/sleeping_king_studios/docs/errors/invalid_directory.rb
165
175
  - lib/sleeping_king_studios/docs/errors/invalid_file.rb
176
+ - lib/sleeping_king_studios/docs/errors/outdated_documentation.rb
177
+ - lib/sleeping_king_studios/docs/errors/registry_error.rb
166
178
  - lib/sleeping_king_studios/docs/jekyll.rb
179
+ - lib/sleeping_king_studios/docs/jekyll/commands.rb
180
+ - lib/sleeping_king_studios/docs/jekyll/commands/backfill_versions.rb
181
+ - lib/sleeping_king_studios/docs/jekyll/commands/check.rb
182
+ - lib/sleeping_king_studios/docs/jekyll/commands/clobber.rb
183
+ - lib/sleeping_king_studios/docs/jekyll/commands/document_version.rb
184
+ - lib/sleeping_king_studios/docs/jekyll/commands/generate.rb
185
+ - lib/sleeping_king_studios/docs/jekyll/commands/install.rb
186
+ - lib/sleeping_king_studios/docs/jekyll/commands/install_templates.rb
187
+ - lib/sleeping_king_studios/docs/jekyll/commands/install_workflow.rb
188
+ - lib/sleeping_king_studios/docs/jekyll/commands/reference.rb
189
+ - lib/sleeping_king_studios/docs/jekyll/commands/update.rb
190
+ - lib/sleeping_king_studios/docs/jekyll/generators.rb
191
+ - lib/sleeping_king_studios/docs/jekyll/generators/data_generator.rb
192
+ - lib/sleeping_king_studios/docs/jekyll/generators/reference_generator.rb
193
+ - lib/sleeping_king_studios/docs/jekyll/generators/version_generator.rb
167
194
  - lib/sleeping_king_studios/docs/jekyll/plugins.rb
168
195
  - lib/sleeping_king_studios/docs/jekyll/plugins/liquid.rb
169
196
  - lib/sleeping_king_studios/docs/jekyll/plugins/liquid/filters.rb
170
197
  - lib/sleeping_king_studios/docs/jekyll/plugins/liquid/filters/anchorize_slug.rb
171
198
  - lib/sleeping_king_studios/docs/jekyll/plugins/required.rb
172
- - lib/sleeping_king_studios/docs/registry.rb
173
- - lib/sleeping_king_studios/docs/registry_query.rb
174
- - lib/sleeping_king_studios/docs/tasks.rb
175
- - lib/sleeping_king_studios/docs/tasks/base.rb
176
- - lib/sleeping_king_studios/docs/tasks/generate.rb
177
- - lib/sleeping_king_studios/docs/tasks/installation.rb
178
- - lib/sleeping_king_studios/docs/tasks/installation/install_jekyll.rb
179
- - lib/sleeping_king_studios/docs/tasks/installation/install_templates.rb
180
- - lib/sleeping_king_studios/docs/tasks/installation/install_workflow.rb
181
- - lib/sleeping_king_studios/docs/tasks/update.rb
182
- - lib/sleeping_king_studios/docs/templates/config.yml.erb
183
- - lib/sleeping_king_studios/docs/templates/deploy-pages.yml.erb
184
- - lib/sleeping_king_studios/docs/templates/includes/breadcrumbs.md
185
- - lib/sleeping_king_studios/docs/templates/includes/reference/attribute.md
186
- - lib/sleeping_king_studios/docs/templates/includes/reference/attributes/heading.md
187
- - lib/sleeping_king_studios/docs/templates/includes/reference/class.md
188
- - lib/sleeping_king_studios/docs/templates/includes/reference/constant.md
189
- - lib/sleeping_king_studios/docs/templates/includes/reference/constants/heading.md
190
- - lib/sleeping_king_studios/docs/templates/includes/reference/constants/inherited.md
191
- - lib/sleeping_king_studios/docs/templates/includes/reference/constants/overview.md
192
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/breadcrumbs.md
193
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/class_attributes.md
194
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/class_methods.md
195
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/constants.md
196
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/constructor.md
197
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/definitions.md
198
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/details.md
199
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/instance_attributes.md
200
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/instance_methods.md
201
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/overview.md
202
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/subclasses.md
203
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents.md
204
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_attributes.md
205
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_methods.md
206
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/constants.md
207
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_attributes.md
208
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_methods.md
209
- - lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/overview.md
210
- - lib/sleeping_king_studios/docs/templates/includes/reference/method.md
211
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/aliases.md
212
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/heading.md
213
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/inherited.md
214
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/overload.md
215
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/overloads.md
216
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/overview.md
217
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/parameters.md
218
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/post_overview.md
219
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/raises.md
220
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/return_types.md
221
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/returns.md
222
- - lib/sleeping_king_studios/docs/templates/includes/reference/methods/yields.md
223
- - lib/sleeping_king_studios/docs/templates/includes/reference/module.md
224
- - lib/sleeping_king_studios/docs/templates/includes/reference/namespace.md
225
- - lib/sleeping_king_studios/docs/templates/includes/reference/parent_link.md
226
- - lib/sleeping_king_studios/docs/templates/includes/reference/reference_link.md
227
- - lib/sleeping_king_studios/docs/templates/includes/reference/see_link.md
228
- - lib/sleeping_king_studios/docs/templates/includes/reference/type.md
229
- - lib/sleeping_king_studios/docs/templates/includes/reference/type_list.md
230
- - lib/sleeping_king_studios/docs/templates/includes/reference/types/array_type.md
231
- - lib/sleeping_king_studios/docs/templates/includes/reference/types/hash_type.md
232
- - lib/sleeping_king_studios/docs/templates/includes/reference/types/ordered_type.md
233
- - lib/sleeping_king_studios/docs/templates/pages/index.md.erb
234
- - lib/sleeping_king_studios/docs/templates/pages/reference.md.erb
235
- - lib/sleeping_king_studios/docs/templates/pages/versions.md.erb
236
199
  - lib/sleeping_king_studios/docs/version.rb
200
+ - lib/sleeping_king_studios/docs/yard.rb
201
+ - lib/sleeping_king_studios/docs/yard/build.rb
202
+ - lib/sleeping_king_studios/docs/yard/parse.rb
203
+ - lib/sleeping_king_studios/docs/yard/registry.rb
204
+ - lib/sleeping_king_studios/docs/yard/registry_query.rb
237
205
  homepage: http://sleepingkingstudios.com
238
206
  licenses:
239
207
  - MIT
@@ -258,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
226
  - !ruby/object:Gem::Version
259
227
  version: '0'
260
228
  requirements: []
261
- rubygems_version: 4.0.2
229
+ rubygems_version: 4.0.20
262
230
  specification_version: 4
263
231
  summary: Tools for generating a versioned documentation site from YARD docs.
264
232
  test_files: []
@@ -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