Class: Muwu::Project
Constant Summary
Constants included
from Muwu
GEM_HOME_LIB, GEM_HOME_LIB_MUWU, VERSION
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Muwu
debug, read
Constructor Details
Returns a new instance of Project.
22
23
24
25
26
27
|
# File 'lib/muwu/project/project.rb', line 22
def initialize
@exceptions = []
@instance_date = Time.now.strftime('%Y-%m-%d')
@metadata = {}
@outline = []
end
|
Instance Attribute Details
#exceptions ⇒ Object
Returns the value of attribute exceptions.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def exceptions
@exceptions
end
|
#instance_date ⇒ Object
Returns the value of attribute instance_date.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def instance_date
@instance_date
end
|
#javascript_libraries_requested ⇒ Object
Returns the value of attribute javascript_libraries_requested.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def javascript_libraries_requested
@javascript_libraries_requested
end
|
#manifest ⇒ Object
Returns the value of attribute manifest.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def manifest
@manifest
end
|
Returns the value of attribute metadata.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def metadata
@metadata
end
|
#options ⇒ Object
Returns the value of attribute options.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def options
@options
end
|
#outline ⇒ Object
Returns the value of attribute outline.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def outline
@outline
end
|
#slug ⇒ Object
Returns the value of attribute slug.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def slug
@slug
end
|
#working_directory ⇒ Object
Returns the value of attribute working_directory.
9
10
11
|
# File 'lib/muwu/project/project.rb', line 9
def working_directory
@working_directory
end
|
Instance Method Details
#css_manifest_file_does_exist ⇒ Object
44
45
46
|
# File 'lib/muwu/project/project.rb', line 44
def css_manifest_file_does_exist
File.exists?(css_manifest_filename) == true
end
|
#css_manifest_filename ⇒ Object
49
50
51
|
# File 'lib/muwu/project/project.rb', line 49
def css_manifest_filename
File.absolute_path(File.join(path_css, 'index.scss'))
end
|
#default_text_block_name ⇒ Object
63
64
65
|
# File 'lib/muwu/project/project.rb', line 63
def default_text_block_name
Default::PROJECT_OUTLINE[:default_text_block_name]
end
|
#does_not_have_crucial_files ⇒ Object
#exceptions_add(exception) ⇒ Object
75
76
77
|
# File 'lib/muwu/project/project.rb', line 75
def exceptions_add(exception)
@exceptions << exception
end
|
#exceptions_fatal ⇒ Object
80
81
82
|
# File 'lib/muwu/project/project.rb', line 80
def exceptions_fatal
@exceptions.select{ |e| e.type == :fatal }
end
|
#exceptions_include?(exception) ⇒ Boolean
85
86
87
|
# File 'lib/muwu/project/project.rb', line 85
def exceptions_include?(exception)
@exceptions.map{ |e| e.class }.include?(exception)
end
|
#has_multiple_html_documents ⇒ Object
90
91
92
|
# File 'lib/muwu/project/project.rb', line 90
def has_multiple_html_documents
@manifest.documents_html_count > 1
end
|
#inspect ⇒ Object
30
31
32
|
# File 'lib/muwu/project/project.rb', line 30
def inspect
["#{self.to_s}", "{", inspect_instance_variables, "}"].join(' ')
end
|
#inspect_instance_variables ⇒ Object
35
36
37
|
# File 'lib/muwu/project/project.rb', line 35
def inspect_instance_variables
self.instance_variables.map { |v| "#{v}=#<#{instance_variable_get(v).class}>" }.join(", ")
end
|
113
114
115
|
# File 'lib/muwu/project/project.rb', line 113
def metadata_file_does_exist
File.exists?(metadata_filename) == true
end
|
118
119
120
|
# File 'lib/muwu/project/project.rb', line 118
def metadata_file_does_not_exist
File.exists?(metadata_filename) == false
end
|
123
124
125
|
# File 'lib/muwu/project/project.rb', line 123
def metadata_filename
determine_project_asset_filepath(:metadata)
end
|
#options_file_does_exist ⇒ Object
128
129
130
|
# File 'lib/muwu/project/project.rb', line 128
def options_file_does_exist
File.exists?(options_filename) == true
end
|
#options_file_does_not_exist ⇒ Object
133
134
135
|
# File 'lib/muwu/project/project.rb', line 133
def options_file_does_not_exist
File.exists?(options_filename) == false
end
|
#options_filename ⇒ Object
138
139
140
|
# File 'lib/muwu/project/project.rb', line 138
def options_filename
determine_project_asset_filepath(:options)
end
|
#outline_file_does_exist ⇒ Object
143
144
145
|
# File 'lib/muwu/project/project.rb', line 143
def outline_file_does_exist
File.exists?(outline_filename) == true
end
|
#outline_file_does_not_exist ⇒ Object
148
149
150
|
# File 'lib/muwu/project/project.rb', line 148
def outline_file_does_not_exist
File.exists?(outline_filename) == false
end
|
#outline_filename ⇒ Object
153
154
155
|
# File 'lib/muwu/project/project.rb', line 153
def outline_filename
determine_project_asset_filepath(:outline)
end
|
#outline_has_more_than_one_document ⇒ Object
158
159
160
|
# File 'lib/muwu/project/project.rb', line 158
def outline_has_more_than_one_document
outline_length > 1
end
|
#outline_has_only_one_document ⇒ Object
163
164
165
|
# File 'lib/muwu/project/project.rb', line 163
def outline_has_only_one_document
outline_length == 1
end
|
#outline_length ⇒ Object
168
169
170
|
# File 'lib/muwu/project/project.rb', line 168
def outline_length
outline.length
end
|
#outline_text_block_names ⇒ Object
173
174
175
176
177
178
179
180
181
182
183
184
|
# File 'lib/muwu/project/project.rb', line 173
def outline_text_block_names
result = []
outline_text_blocks.each do |text_block|
text_block_name = determine_text_block_name(text_block)
if text_block_name == ''
result << 'main'
else
result << text_block_name
end
end
result.uniq
end
|
#outline_text_blocks ⇒ Object
187
188
189
|
# File 'lib/muwu/project/project.rb', line 187
def outline_text_blocks
@outline.flatten.select { |outline_step| (Hash === outline_step) && (RegexpLib.outline_text =~ outline_step.flatten[0]) }
end
|
#outline_text_blocks_named(text_root_name) ⇒ Object
192
193
194
195
196
197
198
199
200
201
|
# File 'lib/muwu/project/project.rb', line 192
def outline_text_blocks_named(text_root_name)
result = []
outline_text_blocks.each do |text_block|
text_block_name = determine_text_block_name(text_block)
if text_block_name == text_root_name.downcase
result.concat(text_block.flatten[1])
end
end
result
end
|
#outline_text_pathnames ⇒ Object
204
205
206
|
# File 'lib/muwu/project/project.rb', line 204
def outline_text_pathnames
@options.outline_text_pathnames
end
|
#outline_text_pathnames_are_explicit ⇒ Object
209
210
211
|
# File 'lib/muwu/project/project.rb', line 209
def outline_text_pathnames_are_explicit
@options.outline_text_pathnames == 'explicit'
end
|
#outline_text_pathnames_are_flexible ⇒ Object
214
215
216
|
# File 'lib/muwu/project/project.rb', line 214
def outline_text_pathnames_are_flexible
@options.outline_text_pathnames == 'flexible'
end
|
#outline_text_pathnames_are_implicit ⇒ Object
219
220
221
|
# File 'lib/muwu/project/project.rb', line 219
def outline_text_pathnames_are_implicit
@options.outline_text_pathnames == 'implicit'
end
|
#outlined_documents ⇒ Object
224
225
226
|
# File 'lib/muwu/project/project.rb', line 224
def outlined_documents
@outline
end
|
#outlined_documents_by_index ⇒ Object
229
230
231
232
233
234
235
|
# File 'lib/muwu/project/project.rb', line 229
def outlined_documents_by_index
result = {}
@outline.each_index do |index|
result[index] = @outline[index]
end
result
end
|
#output_destination ⇒ Object
238
239
240
|
# File 'lib/muwu/project/project.rb', line 238
def output_destination
@options.output_destination
end
|
#output_destination_requests_stdout ⇒ Object
243
244
245
|
# File 'lib/muwu/project/project.rb', line 243
def output_destination_requests_stdout
@options.output_destination == 'stdout'
end
|
248
249
250
|
# File 'lib/muwu/project/project.rb', line 248
def output_formats_several
@options.output_formats.length > 1
end
|
#path_config ⇒ Object
253
254
255
|
# File 'lib/muwu/project/project.rb', line 253
def path_config
File.absolute_path(File.join(@working_directory, 'config'))
end
|
#path_css ⇒ Object
258
259
260
|
# File 'lib/muwu/project/project.rb', line 258
def path_css
File.absolute_path(File.join(path_config, 'css'))
end
|
#path_css_base ⇒ Object
263
264
265
|
# File 'lib/muwu/project/project.rb', line 263
def path_css_base
File.absolute_path(File.join(path_css, 'base'))
end
|
#path_css_colors ⇒ Object
268
269
270
|
# File 'lib/muwu/project/project.rb', line 268
def path_css_colors
File.absolute_path(File.join(path_css, 'colors'))
end
|
#path_css_extensions ⇒ Object
273
274
275
|
# File 'lib/muwu/project/project.rb', line 273
def path_css_extensions
File.absolute_path(File.join(path_css, 'extensions'))
end
|
#path_images ⇒ Object
278
279
280
|
# File 'lib/muwu/project/project.rb', line 278
def path_images
File.absolute_path(File.join(@working_directory, 'images'))
end
|
#path_outline ⇒ Object
283
284
285
|
# File 'lib/muwu/project/project.rb', line 283
def path_outline
@working_directory
end
|
#path_text ⇒ Object
288
289
290
|
# File 'lib/muwu/project/project.rb', line 288
def path_text
File.absolute_path(File.join(@working_directory, 'text'))
end
|
#sort_outline_text_blocks ⇒ Object
302
303
304
305
306
307
308
309
310
311
312
313
314
315
|
# File 'lib/muwu/project/project.rb', line 302
def sort_outline_text_blocks
result = []
outline_text_blocks.each do |text_block|
text_block_name = determine_text_block_name(text_block)
text_block_contents = determine_text_block_contents(text_block)
existing_block = result.select { |b| b.has_key?(text_block_name) }.flatten
if existing_block.empty?
result << { text_block_name => text_block_contents }
else
existing_block[text_block_name].concat(text_block_contents)
end
end
result
end
|
#text_block_naming_is_not_simple ⇒ Object
323
324
325
|
# File 'lib/muwu/project/project.rb', line 323
def text_block_naming_is_not_simple
text_block_naming_is_simple == false
end
|
#text_block_naming_is_simple ⇒ Object
318
319
320
|
# File 'lib/muwu/project/project.rb', line 318
def text_block_naming_is_simple
outline_text_block_names == [default_text_block_name]
end
|
#title ⇒ Object
328
329
330
331
332
333
334
|
# File 'lib/muwu/project/project.rb', line 328
def title
if @metadata.has_key?('title')
@metadata['title']
else
working_directory_name
end
end
|
#will_create_css_file ⇒ Object
337
338
339
|
# File 'lib/muwu/project/project.rb', line 337
def will_create_css_file
@options.output_formats.include?('css')
end
|
#will_create_html_file_only ⇒ Object
342
343
344
|
# File 'lib/muwu/project/project.rb', line 342
def will_create_html_file_only
@options.output_formats == ['html']
end
|
#will_create_javascript_file ⇒ Object
347
348
349
350
351
|
# File 'lib/muwu/project/project.rb', line 347
def will_create_javascript_file
if will_require_javascript_libraries
@options.output_formats.include?('js')
end
end
|
#will_embed_at_least_one_asset ⇒ Object
359
360
361
|
# File 'lib/muwu/project/project.rb', line 359
def will_embed_at_least_one_asset
will_embed_css || will_embed_js
end
|
#will_embed_css ⇒ Object
364
365
366
|
# File 'lib/muwu/project/project.rb', line 364
def will_embed_css
will_create_css_file == false
end
|
#will_embed_js ⇒ Object
369
370
371
|
# File 'lib/muwu/project/project.rb', line 369
def will_embed_js
will_create_javascript_file == false
end
|
#will_generate_navigators_automatically ⇒ Object
374
375
376
|
# File 'lib/muwu/project/project.rb', line 374
def will_generate_navigators_automatically
(outline_has_more_than_one_document) && (@options.generate_navigators_automatically == true) && (@options.output_destination == 'file')
end
|
#will_generate_subcontents_automatically ⇒ Object
379
380
381
|
# File 'lib/muwu/project/project.rb', line 379
def will_generate_subcontents_automatically
(outline_has_more_than_one_document) && (@options.generate_subcontents_automatically == true)
end
|
#will_not_generate_navigators_automatically ⇒ Object
389
390
391
|
# File 'lib/muwu/project/project.rb', line 389
def will_not_generate_navigators_automatically
not will_generate_navigators_automatically
end
|
#will_not_generate_subcontents_automatically ⇒ Object
394
395
396
|
# File 'lib/muwu/project/project.rb', line 394
def will_not_generate_subcontents_automatically
not will_generate_subcontents_automatically
end
|
#will_render_section_numbers ⇒ Object
384
385
386
|
# File 'lib/muwu/project/project.rb', line 384
def will_render_section_numbers
@options.render_section_numbers == true
end
|
#will_require_javascript_libraries ⇒ Object
354
355
356
|
# File 'lib/muwu/project/project.rb', line 354
def will_require_javascript_libraries
@javascript_libraries_requested.count > 0
end
|
#working_directory_name ⇒ Object
399
400
401
|
# File 'lib/muwu/project/project.rb', line 399
def working_directory_name
@working_directory.split(File::SEPARATOR)[-1]
end
|