# File lib/yui/compressor.rb, line 65
    def compress(stream_or_string)
      streamify(stream_or_string) do |stream|
        output = true
        status = POpen4.popen4(command, "b") do |stdout, stderr, stdin, pid|
          begin
            stdin.binmode
            transfer(stream, stdin)

            if block_given?
              yield stdout
            else
              output = stdout.read
            end

          rescue Exception => e
            raise RuntimeError, "compression failed"
          end
        end

        if status.exitstatus.zero?
          output
        else
          raise RuntimeError, "compression failed"
        end
      end
    end