# frozen_string_literal: true

class FormTable
	def initialize(rows, **cols)
		@cols = cols
		@rows = rows
	end

	def add_to_form(form)
		Nokogiri::XML::Builder.with(form) do |xml|
			xml.reported do
				@cols.each do |var, label|
					xml.field(var: var.to_s, label: label.to_s)
				end
			end

			add_rows_to_xml(xml)
		end
	end

protected

	def add_rows_to_xml(xml)
		@rows.each do |row|
			xml.item do
				row.each.with_index do |val, idx|
					xml.field(var: @cols.keys[idx].to_s) do
						xml.value val.to_s
					end
				end
			end
		end
	end
end
