Class: Muwu::ManifestTaskBuilders::TopicBuilder

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

Constant Summary collapse

@@topic_id =
0

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

#initializeTopicBuilder

Returns a new instance of TopicBuilder.



31
32
33
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 31

def initialize
  @topic = ManifestTask::Topic.new
end

Instance Attribute Details

#heading_dataObject

Returns the value of attribute heading_data.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def heading_data
  @heading_data
end

#numberingObject

Returns the value of attribute numbering.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def numbering
  @numbering
end

#outline_fragmentObject

Returns the value of attribute outline_fragment.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def outline_fragment
  @outline_fragment
end

#parent_manifest_textObject

Returns the value of attribute parent_manifest_text.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def parent_manifest_text
  @parent_manifest_text
end

#projectObject

Returns the value of attribute project.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def project
  @project
end

#source_filenameObject

Returns the value of attribute source_filename.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def source_filename
  @source_filename
end

#topicObject

Returns the value of attribute topic.



13
14
15
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 13

def topic
  @topic
end

Class Method Details

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

Yields:

  • (builder)


24
25
26
27
28
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 24

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

Instance Method Details

#build_from_outline_fragment_text(outline_fragment, numbering, parent_manifest_text) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 36

def build_from_outline_fragment_text(outline_fragment, numbering, parent_manifest_text)
  @numbering = numbering
  @outline_fragment = outline_fragment
  @parent_manifest_text = parent_manifest_text
  @project = parent_manifest_text.project
  phase_1_set_id
  phase_1_set_project
  phase_2_set_source_filename
  phase_3_set_heading
  phase_4_set_destination
  phase_4_set_naming
  phase_4_set_numbering
  phase_5_set_subtopics
  phase_6_validate_file_presence
end

#phase_1_set_idObject



53
54
55
56
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 53

def phase_1_set_id
  @topic.id = @@topic_id
  @@topic_id = @@topic_id.next
end

#phase_1_set_projectObject



59
60
61
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 59

def phase_1_set_project
  @topic.project = @project
end

#phase_2_set_source_filenameObject



64
65
66
67
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 64

def phase_2_set_source_filename
  @source_filename = determine_source_filename
  @topic.source_filename = @source_filename
end

#phase_3_set_headingObject



70
71
72
73
74
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 70

def phase_3_set_heading
  @heading_data = determine_heading_data
  @topic.heading = @heading_data[:heading]
  @topic.heading_origin = @heading_data[:origin]
end

#phase_4_set_destinationObject



77
78
79
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 77

def phase_4_set_destination
  @topic.destination = @parent_manifest_text.destination
end

#phase_4_set_namingObject



82
83
84
85
86
87
88
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 82

def phase_4_set_naming
  if Hash === @outline_fragment
    @topic.naming = [@parent_manifest_text.naming, SanitizerHelper.sanitize_topic_path(outline_step)].flatten
  else
    @topic.naming = [@parent_manifest_text.naming, @heading_data[:heading]].flatten
  end
end

#phase_4_set_numberingObject



91
92
93
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 91

def phase_4_set_numbering
  @topic.numbering = @numbering
end

#phase_5_set_subtopicsObject



96
97
98
99
100
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 96

def phase_5_set_subtopics
  if Hash === @outline_fragment
    @topic.subtopics = determine_subtopics
  end
end

#phase_6_validate_file_presenceObject



103
104
105
# File 'lib/muwu/manifest_task_builder/topic_builder.rb', line 103

def phase_6_validate_file_presence
  ProjectValidator.new(@project).validate_task_topic(@topic)
end