# File lib/faster_csv.rb, line 1132
    def self.load(io_or_str, options = Hash.new)
      csv = FasterCSV.new(io_or_str, options)

      # load meta information
      meta = Hash[*csv.shift]
      cls  = meta["class"].split("::").inject(Object) do |c, const|
        c.const_get(const)
      end

      # load headers
      headers = csv.shift

      # unserialize each object stored in the file
      results = csv.inject(Array.new) do |all, row|
        begin
          obj = cls.csv_load(meta, headers, row)
        rescue NoMethodError
          obj = cls.allocate
          headers.zip(row) do |name, value|
            if name[0] == ?@
              obj.instance_variable_set(name, value)
            else
              obj.send(name, value)
            end
          end
        end
        all << obj
      end

      csv.close unless io_or_str.is_a? String

      results
    end