class YARD::Templates::Section

Abstracts the structure for a section and its subsections into an ordered list of sections and subsections. @since 0.6.0

Attributes

name[RW]

Public Class Methods

new(name, *args) click to toggle source
# File lib/yard/templates/section.rb, line 10
def initialize(name, *args)
  self.name = name
  replace(parse_sections(args))
end

Public Instance Methods

<<(*args)
Alias for: push
==(other) click to toggle source
# File lib/yard/templates/section.rb, line 36
def ==(other)
  case other
  when Section
    eql?(other)
  when Array
    to_a == other
  else
    name == other
  end
end
[](*args) click to toggle source
Calls superclass method
# File lib/yard/templates/section.rb, line 21
def [](*args)
  if args.first.is_a?(Range) || args.size > 1
    obj = super(*args)
    obj.name = name
    return obj
  elsif args.first.is_a?(Integer)
    return super(*args)
  end
  find {|o| o.name == args.first }
end
any(item) click to toggle source
# File lib/yard/templates/section.rb, line 76
def any(item)
  find do |section|
    return section if section == item
    return section.any(item) unless section.empty?
  end
  nil
end
dup() click to toggle source
Calls superclass method
# File lib/yard/templates/section.rb, line 15
def dup
  obj = super
  obj.name = name
  obj
end
eql?(other) click to toggle source
Calls superclass method
# File lib/yard/templates/section.rb, line 32
def eql?(other)
  super(other) && name == other.name
end
inspect() click to toggle source
# File lib/yard/templates/section.rb, line 56
def inspect
  n = name.respond_to?(:path) ? "T('#{name.path}')" : name.inspect
  subsects = empty? ? "" : ", subsections=#{super}"
  "Section(#{n}#{subsects})"
end
place(*args) click to toggle source
Calls superclass method Array#place
# File lib/yard/templates/section.rb, line 62
def place(*args)
  super(*parse_sections(args))
end
push(*args) click to toggle source
Calls superclass method
# File lib/yard/templates/section.rb, line 47
def push(*args)
  super(*parse_sections(args))
end
Also aliased as: <<
to_a() click to toggle source
# File lib/yard/templates/section.rb, line 66
def to_a
  list = [name]
  unless empty?
    subsects = []
    each {|s| subsects += s.to_a }
    list << subsects
  end
  list
end
unshift(*args) click to toggle source
Calls superclass method
# File lib/yard/templates/section.rb, line 52
def unshift(*args)
  super(*parse_sections(args))
end

Private Instance Methods

parse_sections(args) click to toggle source
# File lib/yard/templates/section.rb, line 86
def parse_sections(args)
  if args.size == 1 && args.first.is_a?(Array) && !args.first.is_a?(Section)
    args = args.first
  end
  sections = []
  args.each_with_index do |name, index|
    case name
    when Section; sections << name
    when Array;   next
    else
      subsections = args[index + 1].is_a?(Array) ? args[index + 1] : []
      subsections = [] if subsections.is_a?(Section)
      sections << Section.new(name, subsections)
    end
  end
  sections
end