Class: Muwu::ProjectValidator

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

Constant Summary

Constants included from Muwu

GEM_HOME_LIB, GEM_HOME_LIB_MUWU, VERSION

Instance Method Summary collapse

Methods included from Muwu

debug, read

Constructor Details

#initialize(project) ⇒ ProjectValidator

Returns a new instance of ProjectValidator.



8
9
10
# File 'lib/muwu/project_builder/project_validator.rb', line 8

def initialize(project)
  @project = project
end

Instance Method Details

#validate_dir_compiledObject



17
18
19
20
21
22
23
24
# File 'lib/muwu/project_builder/project_validator.rb', line 17

def validate_dir_compiled
  if @project.path_compiled_does_exist
    return true
  else
    @project.exceptions_add ProjectException::CompiledFolderNotFound.new(@project)
    return false
  end
end

#validate_file_cssObject



27
28
29
30
31
32
33
34
# File 'lib/muwu/project_builder/project_validator.rb', line 27

def validate_file_css
  if @project.css_manifest_file_does_exist
    return true
  else
    @project.exceptions_add ProjectException::CssManifestFileNotFound.new(@project.css_manifest_filename)
    return false
  end
end

#validate_file_metadataObject



37
38
39
40
41
42
43
44
# File 'lib/muwu/project_builder/project_validator.rb', line 37

def 
  if @project.
    return true
  else
    @project.exceptions_add ProjectException::MetadataFileNotFound.new(@project)
    return false
  end
end

#validate_file_optionsObject



47
48
49
50
51
52
53
54
# File 'lib/muwu/project_builder/project_validator.rb', line 47

def validate_file_options
  if @project.options_file_does_exist
    return true
  else
    @project.exceptions_add ProjectException::OptionsFileNotFound.new(@project)
    return false
  end
end

#validate_file_outlineObject



57
58
59
60
61
62
63
64
# File 'lib/muwu/project_builder/project_validator.rb', line 57

def validate_file_outline
  if @project.outline_file_does_exist
    return true
  else
    @project.exceptions_add ProjectException::OutlineFileNotFound.new(@project)
    return false
  end
end

#validate_option_remote_publishObject



67
68
69
70
71
# File 'lib/muwu/project_builder/project_validator.rb', line 67

def validate_option_remote_publish
  if @project.options.remote_publish.to_s == ''
    @project.exceptions_add ProjectException::OptionRemotePublishValueNil.new
  end
end

#validate_option_remote_syncObject



74
75
76
77
78
# File 'lib/muwu/project_builder/project_validator.rb', line 74

def validate_option_remote_sync
  if @project.options.remote_sync.to_s == ''
    @project.exceptions_add ProjectException::OptionRemoteSyncValueNil.new
  end
end

#validate_outline_step_navigator(index) ⇒ Object



81
82
83
84
# File 'lib/muwu/project_builder/project_validator.rb', line 81

def validate_outline_step_navigator(index)
  validate_outline_step_navigator_if_single_document(index)
  return validate_outline_step_navigator_if_automatic(index)
end

#validate_outline_step_navigator_if_automatic(index) ⇒ Object



87
88
89
90
91
92
93
94
# File 'lib/muwu/project_builder/project_validator.rb', line 87

def validate_outline_step_navigator_if_automatic(index)
  if @project.will_not_generate_navigators_automatically
    return true
  elsif @project.will_generate_navigators_automatically
    @project.exceptions_add ProjectException::NavigatorsWillBeGeneratedAutomatically.new(index)
    return false
  end
end

#validate_outline_step_navigator_if_single_document(index) ⇒ Object



97
98
99
100
101
# File 'lib/muwu/project_builder/project_validator.rb', line 97

def validate_outline_step_navigator_if_single_document(index)
  if @project.outline_has_only_one_document
    @project.exceptions_add ProjectException::NavigatorNotRecommendedWithSingleDocument.new(index)
  end
end

#validate_outline_step_subcontents(index) ⇒ Object



104
105
106
107
108
109
110
111
# File 'lib/muwu/project_builder/project_validator.rb', line 104

def validate_outline_step_subcontents(index)
  if @project.will_not_generate_subcontents_automatically
    return true
  elsif @project.will_generate_subcontents_automatically
    @project.exceptions_add ProjectException::SubcontentsWillBeGeneratedAutomatically.new(@index)
    return false
  end
end

#validate_output_destination_and_formatsObject



114
115
116
117
118
# File 'lib/muwu/project_builder/project_validator.rb', line 114

def validate_output_destination_and_formats
  if @project.output_destination_requests_stdout && @project.output_formats_several
    @project.exceptions_add ProjectException::MultipleFormatsRequestedWithStdout.new
  end
end

#validate_scenario_if_more_than_one_documentObject



121
122
123
124
125
126
127
128
# File 'lib/muwu/project_builder/project_validator.rb', line 121

def validate_scenario_if_more_than_one_document
  if @project.outline_has_more_than_one_document && @project.output_destination_requests_stdout
    @project.exceptions_add ProjectException::MultipleDocumentsOutlinedWithStdout.new
  end
  if @project.outline_has_more_than_one_document && @project.will_embed_at_least_one_asset
    @project.exceptions_add ProjectException::DryOutputRecommendedWithMultipleDocuments.new
  end
end

#validate_task_metadata(task) ⇒ Object



131
132
133
134
135
136
137
138
139
# File 'lib/muwu/project_builder/project_validator.rb', line 131

def (task)
  values_missing = task..select { |k,v| v.to_s == ''}
  if values_missing.empty?
    return true
  else
    values_missing.each_pair { |k,v| @project.exceptions_add ProjectException::MetadataValueNotGiven.new(task, k) }
    return false
  end
end

#validate_task_text_item(task) ⇒ Object



142
143
144
145
146
147
148
# File 'lib/muwu/project_builder/project_validator.rb', line 142

def validate_task_text_item(task)
  if task.is_parent_heading
    return validate_task_text_item_parent_heading(task)
  elsif task.is_not_parent_heading
    return validate_task_text_item_child_heading(task)
  end
end

#validate_task_text_item_child_heading(task) ⇒ Object



151
152
153
154
155
156
157
158
# File 'lib/muwu/project_builder/project_validator.rb', line 151

def validate_task_text_item_child_heading(task)
  if task.source_file_does_exist
    return true
  else
    @project.exceptions_add ProjectException::TextSourceFileNotFound.new(task)
    return false
  end
end

#validate_task_text_item_parent_heading(task) ⇒ Object



161
162
163
164
165
166
167
168
169
170
# File 'lib/muwu/project_builder/project_validator.rb', line 161

def validate_task_text_item_parent_heading(task)
  if task.source_file_does_exist
    return true
  else
    if @project.options.warning_if_parent_heading_lacks_source
      @project.exceptions_add ProjectException::TextSourceFileNotFound.new(task)
      return false
    end
  end
end

#validate_task_title(task) ⇒ Object



174
175
176
# File 'lib/muwu/project_builder/project_validator.rb', line 174

def validate_task_title(task)
  return (task)
end