Class: Muwu::ProjectWriter
- Inherits:
-
Object
- Object
- Muwu::ProjectWriter
show all
- Includes:
- Muwu, Helper
- Defined in:
- lib/muwu/project_builder/project_writer.rb
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 ProjectWriter.
18
19
20
|
# File 'lib/muwu/project_builder/project_writer.rb', line 18
def initialize(project)
@project = project
end
|
Instance Attribute Details
#project ⇒ Object
Returns the value of attribute project.
13
14
15
|
# File 'lib/muwu/project_builder/project_writer.rb', line 13
def project
@project
end
|
Instance Method Details
#phase_1_make_project_folder ⇒ Object
45
46
47
|
# File 'lib/muwu/project_builder/project_writer.rb', line 45
def phase_1_make_project_folder
announce_and_execute_dir_mkdir(@project.working_directory)
end
|
#phase_2_make_folder_css_and_copy_files ⇒ Object
58
59
60
61
62
|
# File 'lib/muwu/project_builder/project_writer.rb', line 58
def phase_2_make_folder_css_and_copy_files
folder_source_gem = File.absolute_path(File.join(Muwu::GEM_HOME_LIB, 'muwu','project_builder','assets','config','css'))
folder_destination_project = @project.path_css
announce_and_execute_fileutils_cp_r(folder_source_gem, folder_destination_project)
end
|
#phase_2_make_project_subfolders ⇒ Object
50
51
52
53
54
55
|
# File 'lib/muwu/project_builder/project_writer.rb', line 50
def phase_2_make_project_subfolders
announce_and_execute_dir_mkdir(@project.path_compiled)
announce_and_execute_dir_mkdir(@project.path_config)
announce_and_execute_dir_mkdir(@project.path_text)
end
|
65
66
67
|
# File 'lib/muwu/project_builder/project_writer.rb', line 65
def phase_3_write_file_metadata_yml
announce_and_execute_yaml_dump(HashHelper.human_readable_hash(@project.metadata), @project.metadata_filename)
end
|
#phase_3_write_file_options_yml ⇒ Object
70
71
72
|
# File 'lib/muwu/project_builder/project_writer.rb', line 70
def phase_3_write_file_options_yml
announce_and_execute_yaml_dump(HashHelper.human_readable_hash(@project.options), @project.options_filename)
end
|
#phase_3_write_file_outline_yml ⇒ Object
76
77
78
79
80
81
82
|
# File 'lib/muwu/project_builder/project_writer.rb', line 76
def phase_3_write_file_outline_yml
if @project.outline.any?
phase_3_write_file_outline_yml_dump
elsif @project.outline.empty?
phase_3_write_file_outline_yml_blank
end
end
|
#phase_3_write_file_outline_yml_blank ⇒ Object
90
91
92
|
# File 'lib/muwu/project_builder/project_writer.rb', line 90
def phase_3_write_file_outline_yml_blank
announce_and_execute_fileutils_touch(@project.outline_filename)
end
|
#phase_3_write_file_outline_yml_dump ⇒ Object
85
86
87
|
# File 'lib/muwu/project_builder/project_writer.rb', line 85
def phase_3_write_file_outline_yml_dump
announce_and_execute_yaml_dump(@project.outline, @project.outline_filename)
end
|
#write ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/muwu/project_builder/project_writer.rb', line 26
def write
if Dir.exist?(@project.working_directory) == false
puts '# Writing project'
phase_1_make_project_folder
phase_2_make_project_subfolders
phase_2_make_folder_css_and_copy_files
phase_3_write_file_metadata_yml
phase_3_write_file_options_yml
phase_3_write_file_outline_yml
puts "\n"
puts '# Project written.'
elsif Dir.exist?(@project.working_directory) == true
raise ProjectExceptionHandler::Fatal.new(ProjectException::TargetProjectFolderAlreadyExists.new(@project))
end
end
|