module Mabmapper
  module MabXml
    class ResultSet
      include Enumerable
      attr_reader :fields

      def initialize
        @fields = []
      end

      def add_field(field)
        raise if field.blank? or not field.is_a?(Field)

        @fields << field
      end

      def each
        @fields.each{|i| yield i}
      end

      def values(options = {})
        @fields.map{|f| f.values(options)}
      end

      def value(options = {})
        @fields.first.try(:value, options)
      end

      def to_s
        value
      end
    end
  end
end