class Litbuild::Section

Public Class Methods

directory_name() click to toggle source
# File lib/litbuild/section.rb, line 9
def self.directory_name
  'sections'
end

Public Instance Methods

accept(visitor:) click to toggle source
Calls superclass method Litbuild::Blueprint#accept
# File lib/litbuild/section.rb, line 13
def accept(visitor:)
  super
  visitor.in_subdirectory(name) do
    components.each do |bp|
      bp.accept(visitor: visitor)
    end
  end
  visitor.visit_section(section: self)
  return unless visitor.is_a?(MultiPartVisitor)

  self['other-parts']&.each do |part|
    part_bp = @bp_library.blueprint_for(target: part)
    visitor.visit_part(part_bp)
  end
  self['appendices']&.each do |app|
    app_bp = @bp_library.blueprint_for(target: app)
    visitor.visit_appendix(app_bp)
  end
end
automatic_inclusions() click to toggle source
# File lib/litbuild/section.rb, line 49
def automatic_inclusions
  auto_adds = []
  @bp_library.blueprints.each_value do |bp|
    if bp.phases.include?(name)
      auto_adds << "#{bp.name}::#{name}"
    elsif bp['in-section']&.include?(name)
      auto_adds << bp.name
    end
  end
  if $DEBUG
    warn("Automatically-added blueprints for section #{name}:" \
         " #{auto_adds.sort.join(', ')}")
  end
  auto_adds.sort
end
components() click to toggle source
# File lib/litbuild/section.rb, line 33
def components
  return @components if @components

  blueprints = self['blueprints'].clone || []
  if $DEBUG
    warn("Explicit blueprints for section #{name}:" \
         " #{blueprints.join(', ')}")
  end
  blueprints << automatic_inclusions
  deduped = blueprints.flatten.uniq
  @components = deduped.map do |bp|
    @bp_library.blueprint_for(target: bp)
  end
  @components
end
failure_line() click to toggle source
# File lib/litbuild/section.rb, line 69
def failure_line
  'DISMAL FAILURE'
end
success_line() click to toggle source
# File lib/litbuild/section.rb, line 65
def success_line
  'HUGE SUCCESS'
end