Method: HTTPX::Response::Buffer#==

Defined in:
lib/httpx/response/buffer.rb

#==(other) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/httpx/response/buffer.rb', line 74

def ==(other)
  super || begin
    return false unless other.is_a?(Response::Buffer)

    if @buffer.nil?
      other.buffer.nil?
    elsif @buffer.respond_to?(:read) &&
          other.respond_to?(:read)
      buffer_pos = @buffer.pos
      other_pos = other.buffer.pos
      @buffer.rewind
      other.buffer.rewind
      begin
        FileUtils.compare_stream(@buffer, other.buffer)
      ensure
        @buffer.pos = buffer_pos
        other.buffer.pos = other_pos
      end
    else
      to_s == other.to_s
    end
  end
end