class Muwu::ManifestTaskBuilders::MetadataBuilder
Attributes
outline_fragment_metadata[RW]
parent_document[RW]
project[RW]
task[RW]
Public Class Methods
build() { |builder| ... }
click to toggle source
# File lib/muwu/manifest_task_builder/metadata_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/metadata_builder.rb, line 25 def initialize @task = ManifestTask::Metadata.new end
Public Instance Methods
build_from_outline(outline_fragment_metadata, parent_document)
click to toggle source
# File lib/muwu/manifest_task_builder/metadata_builder.rb, line 30 def build_from_outline(outline_fragment_metadata, parent_document) @destination = parent_document.destination @outline_fragment_metadata = outline_fragment_metadata @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/metadata_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/metadata_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/metadata_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/metadata_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/metadata_builder.rb, line 63 def phase_3_validate_metadata_values_exist ProjectValidator.new(@project).validate_task_metadata(@task) end
Private Instance Methods
determine_metadata()
click to toggle source
# File lib/muwu/manifest_task_builder/metadata_builder.rb, line 72 def determine_metadata case @outline_fragment_metadata when String determine_metadata_all when Hash determine_metadata_selected end end
determine_metadata_all()
click to toggle source
# File lib/muwu/manifest_task_builder/metadata_builder.rb, line 82 def determine_metadata_all @project.metadata.merge(determine_metadata_date_of_this_edition) end
determine_metadata_date_of_this_edition(key: 'date of this edition')
click to toggle source
# File lib/muwu/manifest_task_builder/metadata_builder.rb, line 110 def determine_metadata_date_of_this_edition(key: 'date of this edition') metadata = {key => @project.metadata["date of this edition"]} metadata end
determine_metadata_selected()
click to toggle source
# File lib/muwu/manifest_task_builder/metadata_builder.rb, line 87 def determine_metadata_selected metadata = {} keys = @outline_fragment_metadata.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/metadata_builder.rb, line 101 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