def run(opts = nil, sects = sections, start_at = 0, break_first = false, &block)
out = ""
return out if sects.nil?
sects = sects[start_at..-1] if start_at > 0
sects = Section.new(nil, sects) unless sects.is_a?(Section)
add_options(opts) do
sects.each do |s|
self.section = s
subsection_index = 0
value = render_section(section) do |*args|
value = with_section do
run(args.first, section, subsection_index, true, &block)
end
subsection_index += 1
value
end
out << (value || "")
break if break_first
end
end
out
end