Class: Muwu::ProjectReader

Inherits:
Object
  • Object
show all
Includes:
Muwu, Helper
Defined in:
lib/muwu/project_builder/project_reader.rb

Constant Summary

Constants included from Muwu

GEM_HOME_LIB, GEM_HOME_LIB_MUWU, VERSION

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Muwu

debug, read

Constructor Details

#initializeProjectReader

Returns a new instance of ProjectReader.



26
27
28
# File 'lib/muwu/project_builder/project_reader.rb', line 26

def initialize
  @project = Muwu::Project.new
end

Instance Attribute Details

#pathObject

Returns the value of attribute path.



12
13
14
# File 'lib/muwu/project_builder/project_reader.rb', line 12

def path
  @path
end

#projectObject

Returns the value of attribute project.



12
13
14
# File 'lib/muwu/project_builder/project_reader.rb', line 12

def project
  @project
end

#validatorObject

Returns the value of attribute validator.



12
13
14
# File 'lib/muwu/project_builder/project_reader.rb', line 12

def validator
  @validator
end

Class Method Details

.build {|builder| ... } ⇒ Object

Yields:

  • (builder)


19
20
21
22
23
# File 'lib/muwu/project_builder/project_reader.rb', line 19

def self.build
  builder = new
  yield(builder)
  builder.project
end

Instance Method Details

#load_path(path) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/muwu/project_builder/project_reader.rb', line 31

def load_path(path)
  @path = File.absolute_path(path)
  @validator = ProjectValidator.new(@project)
  phase_1_set_project_working_directory
  
  phase_2_read_options
  phase_2_read_outline
  phase_3_set_javascript_libraries_requested
  
  phase_4_validate
  phase_5_build_manifest
end

#phase_1_set_project_working_directoryObject



45
46
47
# File 'lib/muwu/project_builder/project_reader.rb', line 45

def phase_1_set_project_working_directory
  @project.working_directory = @path
end

#phase_2_read_metadataObject



50
51
52
53
54
# File 'lib/muwu/project_builder/project_reader.rb', line 50

def 
  if @validator.
    @project. = YAML.load_file(@project.)
  end
end

#phase_2_read_optionsObject



57
58
59
# File 'lib/muwu/project_builder/project_reader.rb', line 57

def phase_2_read_options
  @project.options = build_options
end

#phase_2_read_outlineObject



62
63
64
65
66
# File 'lib/muwu/project_builder/project_reader.rb', line 62

def phase_2_read_outline
  if @validator.validate_file_outline
    @project.outline = build_outline
  end
end

#phase_3_set_javascript_libraries_requestedObject



69
70
71
# File 'lib/muwu/project_builder/project_reader.rb', line 69

def phase_3_set_javascript_libraries_requested
  @project.javascript_libraries_requested = determine_javascript_libraries
end

#phase_3_set_metadata_instance_dateObject



74
75
76
# File 'lib/muwu/project_builder/project_reader.rb', line 74

def 
  @project.["date of this edition"] = @project.instance_date
end

#phase_4_validateObject



79
80
81
82
83
84
85
86
# File 'lib/muwu/project_builder/project_reader.rb', line 79

def phase_4_validate
  @validator.validate_dir_compiled
  @validator.validate_file_css
  @validator.validate_option_remote_publish
  @validator.validate_option_remote_sync
  @validator.validate_output_destination_and_formats
  @validator.validate_scenario_if_more_than_one_document
end

#phase_5_build_manifestObject



89
90
91
# File 'lib/muwu/project_builder/project_reader.rb', line 89

def phase_5_build_manifest
  @project.manifest = build_manifest
end