instance (FasterCSV)

    # File lib/faster_csv.rb, line 1081
      def self.instance(data = $stdout, options = Hash.new)
        # create a _signature_ for this method call, data object and options
        sig = [data.object_id] +
              options.values_at(*DEFAULT_OPTIONS.keys.sort_by { |sym| sym.to_s })

        # fetch or create the instance for this signature
        @@instances ||= Hash.new
        instance    =   (@@instances[sig] ||= new(data, options))

        if block_given?
          yield instance  # run block, if given, returning result
        else
          instance        # or return the instance
        end
      end