class Samovar::Output::Rows

def << object

def << object
	@rows << Row.new(object)
	
	return self
end

def columns

def columns
	@columns ||= Columns.new(@rows.select{|row| row.is_a? Array})
end

def each(ignore_nested: false, &block)

def each(ignore_nested: false, &block)
	return to_enum(:each, ignore_nested: ignore_nested) unless block_given?
	
	@rows.each do |row|
		if row.is_a?(self.class)
			row.each(&block) unless ignore_nested
		else
			yield row, self
		end
	end
end

def empty?

def empty?
	@rows.empty?
end

def first

def first
	@rows.first
end

def indentation

def indentation
	@indentation ||= "\t" * @level
end

def initialize(level = 0)

def initialize(level = 0)
	@level = level
	@rows = []
end

def last

def last
	@rows.last
end

def nested(*args)

def nested(*args)
	@rows << Header.new(*args)
	
	nested_rows = self.class.new(@level + 1)
	
	yield nested_rows
	
	@rows << nested_rows
end