muwu 2.5.1

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 (126) hide show
  1. checksums.yaml +7 -0
  2. data/bin/muwu +5 -0
  3. data/lib/muwu.rb +38 -0
  4. data/lib/muwu/cli/cli.rb +143 -0
  5. data/lib/muwu/cli/cli_help.rb +28 -0
  6. data/lib/muwu/cli/help/compile +22 -0
  7. data/lib/muwu/cli/help/concat +8 -0
  8. data/lib/muwu/cli/help/heading +2 -0
  9. data/lib/muwu/cli/help/inspect +7 -0
  10. data/lib/muwu/cli/help/new +8 -0
  11. data/lib/muwu/cli/help/reset +14 -0
  12. data/lib/muwu/cli/help/summary +14 -0
  13. data/lib/muwu/controller/controller.rb +120 -0
  14. data/lib/muwu/controller/controller_interaction.rb +146 -0
  15. data/lib/muwu/default/default.rb +51 -0
  16. data/lib/muwu/destination/destination.rb +212 -0
  17. data/lib/muwu/destination_builder/destination_builder.rb +127 -0
  18. data/lib/muwu/helper/hash_helper.rb +37 -0
  19. data/lib/muwu/helper/html_href_helper.rb +101 -0
  20. data/lib/muwu/helper/outline_helper.rb +160 -0
  21. data/lib/muwu/helper/regexp_lib.rb +101 -0
  22. data/lib/muwu/helper/sanitizer_helper.rb +50 -0
  23. data/lib/muwu/manifest/manifest.rb +158 -0
  24. data/lib/muwu/manifest_builder/manifest_builder.rb +102 -0
  25. data/lib/muwu/manifest_task/contents.rb +42 -0
  26. data/lib/muwu/manifest_task/document_css.rb +25 -0
  27. data/lib/muwu/manifest_task/document_html.rb +69 -0
  28. data/lib/muwu/manifest_task/document_js.rb +25 -0
  29. data/lib/muwu/manifest_task/metadata.rb +35 -0
  30. data/lib/muwu/manifest_task/navigator.rb +29 -0
  31. data/lib/muwu/manifest_task/subcontents.rb +48 -0
  32. data/lib/muwu/manifest_task/text.rb +51 -0
  33. data/lib/muwu/manifest_task/text_item.rb +124 -0
  34. data/lib/muwu/manifest_task/title.rb +34 -0
  35. data/lib/muwu/manifest_task_builder/contents_builder.rb +88 -0
  36. data/lib/muwu/manifest_task_builder/document_css_builder.rb +63 -0
  37. data/lib/muwu/manifest_task_builder/document_html_builder.rb +210 -0
  38. data/lib/muwu/manifest_task_builder/document_js_builder.rb +69 -0
  39. data/lib/muwu/manifest_task_builder/metadata_builder.rb +118 -0
  40. data/lib/muwu/manifest_task_builder/navigator_builder.rb +78 -0
  41. data/lib/muwu/manifest_task_builder/subcontents_builder.rb +90 -0
  42. data/lib/muwu/manifest_task_builder/text_builder.rb +125 -0
  43. data/lib/muwu/manifest_task_builder/text_item_builder.rb +314 -0
  44. data/lib/muwu/manifest_task_builder/title_builder.rb +122 -0
  45. data/lib/muwu/project/project.rb +430 -0
  46. data/lib/muwu/project_builder/assets/config/css/base/html_elements.scss +138 -0
  47. data/lib/muwu/project_builder/assets/config/css/base/index.scss +11 -0
  48. data/lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss +23 -0
  49. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss +58 -0
  50. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss +17 -0
  51. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss +13 -0
  52. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss +58 -0
  53. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss +48 -0
  54. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss +22 -0
  55. data/lib/muwu/project_builder/assets/config/css/colors/dark.scss +32 -0
  56. data/lib/muwu/project_builder/assets/config/css/colors/index.scss +1 -0
  57. data/lib/muwu/project_builder/assets/config/css/colors/light.scss +34 -0
  58. data/lib/muwu/project_builder/assets/config/css/extensions/index.scss +1 -0
  59. data/lib/muwu/project_builder/assets/config/css/index.scss +19 -0
  60. data/lib/muwu/project_builder/assets/config/css_debugger/debug_section_text.scss +27 -0
  61. data/lib/muwu/project_builder/project_reader.rb +144 -0
  62. data/lib/muwu/project_builder/project_reset_css.rb +95 -0
  63. data/lib/muwu/project_builder/project_starter.rb +27 -0
  64. data/lib/muwu/project_builder/project_validator.rb +157 -0
  65. data/lib/muwu/project_builder/project_writer.rb +127 -0
  66. data/lib/muwu/project_exception/css_manifest_file_not_found.rb +23 -0
  67. data/lib/muwu/project_exception/dry_output_recommended_with_multiple_documents.rb +19 -0
  68. data/lib/muwu/project_exception/metadata_file_not_found.rb +24 -0
  69. data/lib/muwu/project_exception/metadata_value_not_given.rb +42 -0
  70. data/lib/muwu/project_exception/multiple_documents_outlined_with_stdout.rb +18 -0
  71. data/lib/muwu/project_exception/multiple_formats_requested_with_stdout.rb +18 -0
  72. data/lib/muwu/project_exception/navigator_not_recommended_with_stdout.rb +23 -0
  73. data/lib/muwu/project_exception/navigators_will_be_generated_automatically.rb +23 -0
  74. data/lib/muwu/project_exception/option_key_not_understood.rb +23 -0
  75. data/lib/muwu/project_exception/option_not_validatable.rb +23 -0
  76. data/lib/muwu/project_exception/option_value_not_understood.rb +24 -0
  77. data/lib/muwu/project_exception/options_file_not_found.rb +24 -0
  78. data/lib/muwu/project_exception/outline_file_not_found.rb +24 -0
  79. data/lib/muwu/project_exception/outline_step_not_understood.rb +23 -0
  80. data/lib/muwu/project_exception/output_already_open.rb +18 -0
  81. data/lib/muwu/project_exception/output_not_open.rb +18 -0
  82. data/lib/muwu/project_exception/subcontents_will_be_generated_automatically copy.rb +23 -0
  83. data/lib/muwu/project_exception/target_project_folder_already_exists.rb +24 -0
  84. data/lib/muwu/project_exception/text_source_file_not_found.rb +26 -0
  85. data/lib/muwu/project_exception_handler/fatal.rb +39 -0
  86. data/lib/muwu/project_options/project_options.rb +54 -0
  87. data/lib/muwu/project_options_builder/project_option_validator.rb +37 -0
  88. data/lib/muwu/project_options_builder/project_option_validator_key.rb +56 -0
  89. data/lib/muwu/project_options_builder/project_option_validator_value.rb +300 -0
  90. data/lib/muwu/project_options_builder/project_options_reader.rb +80 -0
  91. data/lib/muwu/render_concat/render_concat.rb +80 -0
  92. data/lib/muwu/render_html/render_html.rb +101 -0
  93. data/lib/muwu/render_html/render_markup_to_html.rb +87 -0
  94. data/lib/muwu/render_html_builder/render_css_builder.rb +34 -0
  95. data/lib/muwu/render_html_builder/render_html_builder.rb +34 -0
  96. data/lib/muwu/render_html_builder/render_js_builder.rb +34 -0
  97. data/lib/muwu/render_html_partial/js_library/_init_bare.js +7 -0
  98. data/lib/muwu/render_html_partial/js_library/_zepto.min.js +2 -0
  99. data/lib/muwu/render_html_partial/js_library/init.js +10 -0
  100. data/lib/muwu/render_html_partial/js_library/navigation.js +140 -0
  101. data/lib/muwu/render_html_partial/render_contents.rb +369 -0
  102. data/lib/muwu/render_html_partial/render_document_css.rb +45 -0
  103. data/lib/muwu/render_html_partial/render_document_html.rb +397 -0
  104. data/lib/muwu/render_html_partial/render_document_js.rb +37 -0
  105. data/lib/muwu/render_html_partial/render_js_library.rb +54 -0
  106. data/lib/muwu/render_html_partial/render_metadata.rb +120 -0
  107. data/lib/muwu/render_html_partial/render_navigator.rb +136 -0
  108. data/lib/muwu/render_html_partial/render_subcontents.rb +374 -0
  109. data/lib/muwu/render_html_partial/render_text.rb +74 -0
  110. data/lib/muwu/render_html_partial/render_text_item.rb +230 -0
  111. data/lib/muwu/render_html_partial/render_title.rb +71 -0
  112. data/lib/muwu/render_html_partial_builder/render_contents_builder.rb +100 -0
  113. data/lib/muwu/render_html_partial_builder/render_document_css_builder.rb +46 -0
  114. data/lib/muwu/render_html_partial_builder/render_document_html_builder.rb +211 -0
  115. data/lib/muwu/render_html_partial_builder/render_document_js_builder.rb +52 -0
  116. data/lib/muwu/render_html_partial_builder/render_metadata_builder.rb +47 -0
  117. data/lib/muwu/render_html_partial_builder/render_navigator_builder.rb +74 -0
  118. data/lib/muwu/render_html_partial_builder/render_subcontents_builder.rb +85 -0
  119. data/lib/muwu/render_html_partial_builder/render_text_builder.rb +86 -0
  120. data/lib/muwu/render_html_partial_builder/render_text_item_builder.rb +274 -0
  121. data/lib/muwu/render_html_partial_builder/render_title_builder.rb +47 -0
  122. data/lib/muwu/render_inspector/render_inspector.rb +224 -0
  123. data/lib/muwu/var/deflistdiv.rb +239 -0
  124. data/lib/muwu_loader.rb +35 -0
  125. data/test/what_no_tests.md +5 -0
  126. metadata +251 -0
@@ -0,0 +1,86 @@
1
+ module Muwu
2
+ module RenderHtmlPartialBuilder
3
+ class TextBuilder
4
+
5
+
6
+ include Muwu
7
+
8
+
9
+ attr_accessor(
10
+ :manifest_text,
11
+ :project,
12
+ :renderer
13
+ )
14
+
15
+
16
+ def self.build
17
+ builder = new
18
+ yield(builder)
19
+ builder.renderer
20
+ end
21
+
22
+
23
+ def initialize
24
+ @renderer = RenderHtmlPartial::Text.new
25
+ end
26
+
27
+
28
+ def build_from_manifest_text(text)
29
+ @manifest_text = text
30
+ @project = text.project
31
+ set_destination
32
+ set_project
33
+ set_text_root_name
34
+ set_sections
35
+ finally_set_html_attr_id
36
+ end
37
+
38
+
39
+ def finally_set_html_attr_id
40
+ @renderer.html_attr_id = ['text', @renderer.text_root_name].join('_')
41
+ end
42
+
43
+
44
+ def set_destination
45
+ @renderer.destination = @manifest_text.destination
46
+ end
47
+
48
+
49
+ def set_project
50
+ @renderer.project = @project
51
+ end
52
+
53
+
54
+ def set_text_root_name
55
+ @renderer.text_root_name = @manifest_text.text_root_name
56
+ end
57
+
58
+
59
+ def set_sections
60
+ @renderer.sections = determine_sections
61
+ end
62
+
63
+
64
+
65
+ private
66
+
67
+
68
+ def determine_sections
69
+ sections = []
70
+ @manifest_text.sections.each do |section|
71
+ sections << build_text_item(section)
72
+ end
73
+ sections
74
+ end
75
+
76
+
77
+ def build_text_item(text_item)
78
+ RenderHtmlPartialBuilder::TextItemBuilder.build do |b|
79
+ b.build_from_manifest_text_item(text_item)
80
+ end
81
+ end
82
+
83
+
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,274 @@
1
+ module Muwu
2
+ module RenderHtmlPartialBuilder
3
+ class TextItemBuilder
4
+
5
+
6
+ include Muwu
7
+
8
+
9
+ attr_accessor(
10
+ :renderer
11
+ )
12
+
13
+
14
+ def self.build
15
+ builder = new
16
+ yield(builder)
17
+ builder.renderer
18
+ end
19
+
20
+
21
+ def initialize
22
+ @renderer = RenderHtmlPartial::TextItem.new
23
+ end
24
+
25
+
26
+ def build_from_manifest_text_item(manifest_text_item)
27
+ @manifest_text_item = manifest_text_item
28
+ @project = manifest_text_item.project
29
+ @href_helper = Helper::HtmlHrefHelper.new(manifest_text_item)
30
+ phase_1_set_destination
31
+ phase_1_set_heading
32
+ phase_1_set_heading_origin
33
+ phase_1_set_numbering
34
+ phase_1_set_section_depth
35
+ phase_1_set_section_number_as_attr
36
+ phase_1_set_section_number_as_text
37
+ phase_1_set_does_have_source_text
38
+ phase_1_set_is_parent_heading
39
+ phase_1_set_text_root_name
40
+ phase_1_set_markdown_renderer
41
+ phase_2_set_source_filename_absolute
42
+ phase_2_set_source_filename_relative
43
+ phase_3_set_sections
44
+ phase_4_set_end_links
45
+ phase_4_set_html_attr_id
46
+ phase_4_set_will_render_section_number
47
+ phase_4_set_subsections_are_distinct
48
+ end
49
+
50
+
51
+
52
+ def phase_1_set_destination
53
+ @renderer.destination = @manifest_text_item.destination
54
+ end
55
+
56
+
57
+ def phase_1_set_does_have_source_text
58
+ if @manifest_text_item.source_file_does_exist
59
+ @renderer.does_have_source_text = true
60
+ elsif @manifest_text_item.source_file_does_not_exist
61
+ @renderer.does_have_source_text = false
62
+ end
63
+ end
64
+
65
+
66
+ def phase_1_set_heading
67
+ @renderer.heading = @manifest_text_item.heading
68
+ end
69
+
70
+
71
+ def phase_1_set_heading_origin
72
+ @renderer.heading_origin = @manifest_text_item.heading_origin
73
+ end
74
+
75
+
76
+ def phase_1_set_is_parent_heading
77
+ @renderer.is_parent_heading = @manifest_text_item.is_parent_heading
78
+ end
79
+
80
+
81
+ def phase_1_set_markdown_renderer
82
+ @renderer.markup_renderer = Muwu::RenderMarkupToHtml.new(@project)
83
+ end
84
+
85
+
86
+ def phase_1_set_numbering
87
+ @renderer.numbering = @manifest_text_item.numbering
88
+ end
89
+
90
+
91
+ def phase_1_set_options_commonmarker
92
+ @renderer.options_commonmarker = []
93
+ if @project.options.render_punctuation_smart
94
+ @renderer.options_commonmarker.append(:SMART)
95
+ end
96
+ end
97
+
98
+
99
+ def phase_1_set_section_depth
100
+ @renderer.section_depth = @manifest_text_item.section_depth
101
+ end
102
+
103
+
104
+ def phase_1_set_section_number_as_attr
105
+ @renderer.section_number_as_attr = @manifest_text_item.numbering.join('_')
106
+ end
107
+
108
+
109
+ def phase_1_set_section_number_as_text
110
+ @renderer.section_number_as_text = @manifest_text_item.numbering.join('.')
111
+ end
112
+
113
+
114
+ def phase_1_set_text_root_name
115
+ @renderer.text_root_name = @manifest_text_item.text_root_name
116
+ end
117
+
118
+
119
+ def phase_2_set_source_filename_absolute
120
+ if @manifest_text_item.source_file_does_exist
121
+ @renderer.source_filename_absolute = @manifest_text_item.source_filename_absolute
122
+ end
123
+ end
124
+
125
+
126
+ def phase_2_set_source_filename_relative
127
+ if @manifest_text_item.source_file_does_exist
128
+ @renderer.source_filename_relative = @manifest_text_item.source_filename_relative
129
+ end
130
+ end
131
+
132
+
133
+ def phase_3_set_sections
134
+ if @manifest_text_item.does_have_child_sections
135
+ @renderer.sections = determine_sections
136
+ end
137
+ end
138
+
139
+
140
+ def phase_4_set_end_links
141
+ if text_item_should_have_end_links
142
+ @renderer.end_links = determine_end_links
143
+ end
144
+ end
145
+
146
+
147
+ def phase_4_set_html_attr_id
148
+ @renderer.html_attr_id = ['text', @renderer.text_root_name, @renderer.section_number_as_attr].join('_')
149
+ end
150
+
151
+
152
+ def phase_4_set_will_render_section_number
153
+ @renderer.will_render_section_number = determine_whether_text_item_will_render_section_number
154
+ end
155
+
156
+
157
+ def phase_4_set_subsections_are_distinct
158
+ @renderer.subsections_are_distinct = determine_whether_subsections_are_distinct
159
+ end
160
+
161
+
162
+
163
+ private
164
+
165
+
166
+ def build_renderer_text_item(text_item)
167
+ RenderHtmlPartialBuilder::TextItemBuilder.build do |b|
168
+ b.build_from_manifest_text_item(text_item)
169
+ end
170
+ end
171
+
172
+
173
+ def determine_end_links
174
+ end_links = {}
175
+ if @project.options.render_section_end_links
176
+ @project.options.render_section_end_links.each do |link|
177
+ end_links[link] = determine_end_links_href(link)
178
+ end
179
+ end
180
+ end_links
181
+ end
182
+
183
+
184
+ def determine_end_links_href(link)
185
+ case link
186
+ when 'contents'
187
+ @href_helper.to_contents_heading(@manifest_text_item)
188
+ when 'home'
189
+ @href_helper.to_project_home
190
+ when 'top'
191
+ @href_helper.to_document_top
192
+ end
193
+ end
194
+
195
+
196
+ def determine_sections
197
+ sections = []
198
+ @manifest_text_item.sections.each do |section|
199
+ sections << build_renderer_text_item(section)
200
+ end
201
+ sections
202
+ end
203
+
204
+
205
+ def determine_whether_subsections_are_distinct
206
+ if @manifest_text_item.does_have_child_sections
207
+ if @project.options.render_sections_distinctly_depth_max == nil
208
+ return true
209
+ elsif @renderer.section_depth < @project.options.render_sections_distinctly_depth_max
210
+ return true
211
+ elsif @renderer.section_depth >= @project.options.render_sections_distinctly_depth_max
212
+ return false
213
+ end
214
+ end
215
+ end
216
+
217
+
218
+ def determine_whether_text_item_will_render_section_number
219
+ if @project.will_render_section_numbers && text_item_should_be_distinct
220
+ true
221
+ end
222
+ end
223
+
224
+
225
+ def text_item_should_be_distinct
226
+ if @project.options.render_sections_distinctly_depth_max == nil
227
+ return true
228
+ elsif @renderer.section_depth <= @project.options.render_sections_distinctly_depth_max
229
+ return true
230
+ elsif @renderer.section_depth > @project.options.render_sections_distinctly_depth_max
231
+ return false
232
+ end
233
+ end
234
+
235
+
236
+ def text_item_should_have_end_links
237
+ if text_item_should_be_distinct
238
+ return text_item_distinct_should_have_end_links
239
+ else
240
+ return false
241
+ end
242
+ end
243
+
244
+
245
+ def text_item_distinct_should_have_end_links
246
+ if @renderer.is_parent_heading
247
+ return text_item_distinct_parent_should_have_end_links
248
+ elsif @renderer.does_have_source_text
249
+ return true
250
+ end
251
+ end
252
+
253
+
254
+ def text_item_distinct_parent_should_have_end_links
255
+ if @renderer.does_have_source_text == true
256
+ return true
257
+ elsif @renderer.does_have_source_text == false
258
+ return text_item_distinct_parent_without_source_should_have_end_links
259
+ end
260
+ end
261
+
262
+
263
+ def text_item_distinct_parent_without_source_should_have_end_links
264
+ if determine_whether_subsections_are_distinct == true
265
+ return false
266
+ elsif determine_whether_subsections_are_distinct == false
267
+ return true
268
+ end
269
+ end
270
+
271
+
272
+ end
273
+ end
274
+ end
@@ -0,0 +1,47 @@
1
+ module Muwu
2
+ module RenderHtmlPartialBuilder
3
+ class TitleBuilder
4
+
5
+
6
+ include Muwu
7
+ include Helper
8
+
9
+
10
+ attr_accessor(
11
+ :manifest_title,
12
+ :renderer
13
+ )
14
+
15
+
16
+ def self.build
17
+ builder = new
18
+ yield(builder)
19
+ builder.renderer
20
+ end
21
+
22
+
23
+ def initialize
24
+ @renderer = RenderHtmlPartial::Title.new
25
+ end
26
+
27
+
28
+ def build_from_manifest_title(manifest_title)
29
+ @manifest_title = manifest_title
30
+ set_destination
31
+ set_metadata
32
+ end
33
+
34
+
35
+ def set_destination
36
+ @renderer.destination = @manifest_title.destination
37
+ end
38
+
39
+
40
+ def set_metadata
41
+ @renderer.metadata = SanitizerHelper::sanitize_metadata(@manifest_title.metadata)
42
+ end
43
+
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,224 @@
1
+ module Muwu
2
+ class RenderInspector
3
+
4
+
5
+ include Muwu
6
+
7
+
8
+ COLUMN_LEFT = 12
9
+ SEPARATOR = ' '
10
+
11
+
12
+ def initialize(project)
13
+ @project = project
14
+ end
15
+
16
+
17
+
18
+ public
19
+
20
+
21
+ def render_inspector
22
+ render_inspector_project
23
+ render_inspector_options
24
+ render_inspector_manifest
25
+ render_inspector_errors
26
+ end
27
+
28
+
29
+ def render_inspector_errors
30
+ if @project.exceptions.any?
31
+ @project.exceptions.each do |error|
32
+ render_inspector_error_report(error)
33
+ end
34
+ puts
35
+ end
36
+ end
37
+
38
+
39
+ def render_inspector_manifest
40
+ @project.manifest.documents.each do |document|
41
+ case document
42
+ when ManifestTask::DocumentCss
43
+ render_inspector_document_css(document)
44
+ when ManifestTask::DocumentHtml
45
+ render_inspector_document_html(document)
46
+ when ManifestTask::DocumentJs
47
+ render_inspector_document_js(document)
48
+ end
49
+ end
50
+ end
51
+
52
+
53
+ def render_inspector_options
54
+ puts @project.options
55
+ @project.options.instance_variables.each do |option|
56
+ key = option.to_s.gsub(/\A@/,'')
57
+ value = @project.options.instance_variable_get(option)
58
+ puts indent("#{key}: #{value}")
59
+ end
60
+ puts
61
+ end
62
+
63
+
64
+ def render_inspector_project
65
+ puts @project
66
+ puts indent("slug: #{@project.slug}")
67
+ puts indent("working_directory: #{@project.working_directory}")
68
+ puts indent("js_libraries: #{@project.javascript_libraries_requested}")
69
+ puts
70
+ end
71
+
72
+
73
+
74
+ private
75
+
76
+
77
+ def column_left(text)
78
+ text.ljust(COLUMN_LEFT)
79
+ end
80
+
81
+
82
+ def indent(text)
83
+ column_left(text).prepend(' ')
84
+ end
85
+
86
+
87
+ def puts_line(output=nil)
88
+ if Array === output
89
+ puts output.compact.join(SEPARATOR)
90
+ elsif NilClass === output
91
+ puts "\n"
92
+ else
93
+ puts output
94
+ end
95
+ end
96
+
97
+
98
+ def render_inspector_document_css(document)
99
+ puts_line [document.to_s]
100
+ puts_line [document.destination.to_s, document.destination.output_class, document.destination.output_filename]
101
+ puts_line
102
+ end
103
+
104
+
105
+ def render_inspector_document_html(document)
106
+ puts_line [document.to_s, "index: #{document.index}"]
107
+ puts_line [document.destination.to_s, document.destination.output_class, document.destination.output_filename]
108
+ document.tasks.each do |task|
109
+ render_inspector_manifest_task(task)
110
+ end
111
+ puts_line
112
+ end
113
+
114
+
115
+ def render_inspector_document_js(document)
116
+ puts_line [document.to_s]
117
+ puts_line [
118
+ document.destination.to_s,
119
+ document.destination.output_class,
120
+ document.destination.output_filename
121
+ ]
122
+ puts_line
123
+ end
124
+
125
+
126
+ def render_inspector_error_report(error)
127
+ puts_line [
128
+ column_left(error.type.to_s),
129
+ error.report
130
+ ]
131
+ end
132
+
133
+
134
+ def render_inspector_manifest_task(task)
135
+ case task
136
+ when ManifestTask::Contents
137
+ render_inspector_manifest_task_contents(task)
138
+ when ManifestTask::Metadata
139
+ render_inspector_manifest_task_metadata(task)
140
+ when ManifestTask::Navigator
141
+ render_inspector_manifest_task_navigator(task)
142
+ when ManifestTask::Subcontents
143
+ render_inspector_manifest_task_subcontents(task)
144
+ when ManifestTask::Title
145
+ render_inspector_manifest_task_title(task)
146
+ when ManifestTask::Text
147
+ render_inspector_manifest_task_text(task)
148
+ when ManifestTask::TextItem
149
+ render_inspector_manifest_task_text_item(task)
150
+ end
151
+ end
152
+
153
+
154
+ def render_inspector_manifest_task_contents(contents)
155
+ puts_line [
156
+ indent('Contents'),
157
+ contents.naming.inspect
158
+ ]
159
+ end
160
+
161
+
162
+ def render_inspector_manifest_task_metadata(metadata)
163
+ puts_line [
164
+ indent('Metadata'),
165
+ metadata.metadata.to_s
166
+ ]
167
+ end
168
+
169
+
170
+ def render_inspector_manifest_task_navigator(navigator)
171
+ puts_line [
172
+ indent('Navigator'),
173
+ "prev: #{navigator.document_prev_index}",
174
+ "home: #{navigator.document_home_index}",
175
+ "next: #{navigator.document_next_index}"
176
+ ]
177
+ end
178
+
179
+
180
+ def render_inspector_manifest_task_subcontents(contents)
181
+ puts_line [
182
+ indent('Subcontents'),
183
+ contents.naming.inspect
184
+ ]
185
+ end
186
+
187
+
188
+ def render_inspector_manifest_task_text(text)
189
+ puts_line [
190
+ indent('Text'),
191
+ text.naming.inspect
192
+ ]
193
+ text.sections.each do |section|
194
+ render_inspector_manifest_task(section)
195
+ end
196
+ end
197
+
198
+
199
+ def render_inspector_manifest_task_text_item(text_item)
200
+ puts_line [
201
+ indent('| TextItem'),
202
+ text_item.numbering.inspect,
203
+ text_item.heading.inspect,
204
+ text_item.source_filename,
205
+ ('!!' if text_item.source_file_does_not_exist)
206
+ ]
207
+ if text_item.does_have_child_sections
208
+ text_item.sections.each do |section|
209
+ render_inspector_manifest_task(section)
210
+ end
211
+ end
212
+ end
213
+
214
+
215
+ def render_inspector_manifest_task_title(title)
216
+ puts_line [
217
+ indent('Title'),
218
+ title.metadata.to_s
219
+ ]
220
+ end
221
+
222
+
223
+ end
224
+ end