class Gem::Comparator::Report::NestedSection

Constants

DEFAULT_INDENT

Attributes

header[R]
level[R]
messages[R]
name[RW]
parent_section[R]
sections[RW]

Public Class Methods

new(name, parent_section = nil) click to toggle source
# File lib/rubygems/comparator/report.rb, line 48
def initialize(name, parent_section = nil)
  @name = name
  @header = Entry.new
  @messages = []
  @sections = []
  @level = 0

  set_parent parent_section if parent_section
end

Public Instance Methods

<<(message)
Alias for: puts
[](name)
Alias for: nest
all_messages() click to toggle source
# File lib/rubygems/comparator/report.rb, line 88
def all_messages
  indent = DEFAULT_INDENT*@level

  if @header.empty?
    @messages.map do |m|
      m.set_indent!(indent)
    end + nested_messages
  else
    nested = @messages.map do |m|
      m.set_indent!(indent * 2)
    end + nested_messages
    return [] if nested.empty?

    @header.set_indent!(indent)
    nested.unshift(@header)
  end
end
lines(line_num) click to toggle source
# File lib/rubygems/comparator/report.rb, line 106
def lines(line_num)
  all_messages[line_num].data
end
nest(name) click to toggle source
# File lib/rubygems/comparator/report.rb, line 76
def nest(name)
  @sections.each do |s|
    return s if s.name == name
  end
  NestedSection.new(name, self)
end
Also aliased as: []
nested_messages() click to toggle source
# File lib/rubygems/comparator/report.rb, line 110
def nested_messages
  nested_messages = []
  @sections.each do |section|
    section.all_messages.each do |m|
      nested_messages << m
    end
  end
  nested_messages
end
print() click to toggle source
puts(message) click to toggle source
# File lib/rubygems/comparator/report.rb, line 66
def puts(message)
  case message
  when String, Array
    @messages << Entry.new(message) unless message.empty?
  else
    @messages << Entry.new(message) unless message
  end
end
Also aliased as: <<
section(&block) click to toggle source
# File lib/rubygems/comparator/report.rb, line 58
def section(&block)
  instance_eval &block
end
set_header(message) click to toggle source
# File lib/rubygems/comparator/report.rb, line 62
def set_header(message)
  @header = Entry.new(message)
end

Private Instance Methods

set_parent(parent) click to toggle source
# File lib/rubygems/comparator/report.rb, line 122
def set_parent(parent)
  parent.sections << self
  @level = parent.level + 1
  parent_section = parent
end