Class: Muwu::ProjectWriter

Inherits:
Object
  • Object
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

#initialize(project) ⇒ ProjectWriter

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

#projectObject

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_folderObject



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_filesObject



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_subfoldersObject



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_images)    # DEPRECATED
  announce_and_execute_dir_mkdir(@project.path_text)
end

#phase_3_write_file_metadata_ymlObject



65
66
67
# File 'lib/muwu/project_builder/project_writer.rb', line 65

def 
  announce_and_execute_yaml_dump(HashHelper.human_readable_hash(@project.), @project.)
end

#phase_3_write_file_options_ymlObject



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_ymlObject



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_blankObject



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_dumpObject



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

#writeObject



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_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