class Muwu::ManifestTaskBuilders::TitleBuilder
Attributes
outline_fragment_title[RW]
parent_document[RW]
project[RW]
task[RW]
Public Class Methods
build() { |builder| ... }
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 18 def self.build builder = new yield(builder) builder.task end
new()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 25 def initialize @task = ManifestTask::Title.new end
Public Instance Methods
build_from_outline(outline_fragment_title, parent_document)
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 30 def build_from_outline(outline_fragment_title, parent_document) @destination = parent_document.destination @outline_fragment_title = outline_fragment_title @parent_document = parent_document @project = parent_document.project phase_1_set_parent phase_1_set_project phase_2_set_destination phase_2_set_metadata phase_3_validate_metadata_values_exist end
phase_1_set_parent()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 43 def phase_1_set_parent @task.parent_document = @parent_document end
phase_1_set_project()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 48 def phase_1_set_project @task.project = @project end
phase_2_set_destination()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 53 def phase_2_set_destination @task.destination = @destination end
phase_2_set_metadata()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 58 def phase_2_set_metadata @task.metadata = determine_metadata end
phase_3_validate_metadata_values_exist()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 63 def phase_3_validate_metadata_values_exist ProjectValidator.new(@project).validate_task_title(@task) end
Private Instance Methods
determine_metadata()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 72 def determine_metadata case @outline_fragment_title when Hash determine_metadata_selected when String determine_metadata_default end end
determine_metadata_date_of_this_edition(key: 'date of this edition')
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 114 def determine_metadata_date_of_this_edition(key: 'date of this edition') metadata = {key => @project.metadata["date of this edition"]} metadata end
determine_metadata_default()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 82 def determine_metadata_default metadata = {} @project.options.render_title_section_metadata.each do |key| metadata[key] = @project.metadata[key] end metadata end
determine_metadata_selected()
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 91 def determine_metadata_selected metadata = {} keys = @outline_fragment_title.flatten[1] keys.each do |key| if key =~ RegexpLib.metadata_key_date_of_this_edition metadata.merge!(determine_metadata_date_of_this_edition(key: key)) else metadata.merge!(determine_metadata_selected_and_validate(key)) end end metadata end
determine_metadata_selected_and_validate(key)
click to toggle source
# File lib/muwu/manifest_task_builder/title_builder.rb, line 105 def determine_metadata_selected_and_validate(key) metadata = @project.metadata.select { |k,v| k.downcase == key.downcase } if metadata.empty? metadata = {key => nil} end metadata end