class Muwu::ManifestTaskBuilders::TextBuilder

Attributes

outline_text[RW]
parent_document[RW]
project[RW]
text[RW]

Public Class Methods

build() { |builder| ... } click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 18
def self.build
  builder = new
  yield(builder)
  builder.text
end
new() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 25
def initialize
  @text = ManifestTask::Text.new
end

Public Instance Methods

build_from_outline(outline_text, parent_document) click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 30
def build_from_outline(outline_text, parent_document)
  @outline_text = outline_text
  @parent_document = parent_document
  @project = parent_document.project
  set_project
  set_destination
  set_naming
  set_numbering
  set_sections
end
set_destination() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 42
def set_destination
  @text.destination = @parent_document.destination
end
set_naming() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 47
def set_naming
  @text.naming = [determine_text_block_name]
end
set_numbering() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 52
def set_numbering
  @text.numbering = []
end
set_project() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 57
def set_project
  @text.project = @project
end
set_sections() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 62
def set_sections
  @text.sections = build_sections
end

Private Instance Methods

build_sections() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 71
def build_sections
  sections = []
  child_steps = determine_text_block_steps
  if child_steps.empty? == false
    child_section_numbering = section_number_extend(@text.numbering)
    child_steps.each do |step|
      child_section_numbering = section_number_find(child_section_numbering, step)
      sections << build_text_item(step, child_section_numbering)
    end
  end
  sections
end
build_text_item(step, section_numbering) click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 85
def build_text_item(step, section_numbering)
  ManifestTaskBuilders::TextItemBuilder.build do |b|
    b.build_from_outline_fragment_text(step, section_numbering, @text)
  end
end
determine_text_block_name() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 92
def determine_text_block_name
  directive = @outline_text.flatten[0]
  components = directive.partition(RegexpLib.outline_text_plus_whitespace)
  text_block_name = components[2].to_s.downcase.strip
  if text_block_name == ''
    text_block_name = @project.default_text_block_name
  end
  text_block_name
end
determine_text_block_steps() click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 103
def determine_text_block_steps
  @outline_text.flatten[1]
end
section_number_extend(number_incoming) click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 108
def section_number_extend(number_incoming)
  number_outgoing = number_incoming.clone
  number_outgoing << 0
  number_outgoing
end
section_number_find(number_incoming, step) click to toggle source
# File lib/muwu/manifest_task_builder/text_builder.rb, line 115
def section_number_find(number_incoming, step)
  number_outgoing = number_incoming.clone
  sorted_outline_steps = @project.outline_text_blocks_named(@text.text_root_name)
  number_outgoing[-1] = sorted_outline_steps.index(step) + 1
  number_outgoing
end