From: Kannan Jay Date: 2010-04-12T20:37:36+09:00 Subject: Non empty string complained to be 'nil' in equality check I have the below code response = Net::HTTP.start(url.host, url.port) do |http| http.request(request) end exp_code = 450 if(response.code.to_i != exp_code) raise StandardError, "Expected #{exp_code} Received #{response.code.to_i}" end exp_msg = 'Blocked By Parental Controls' puts 'Received status msg: #{response.message}' if(response.message != exp_msg) raise StandardError, "Expected #{exp_msg} Received #{response.message}" end The received response is HTTP/1.1 450 Blocked By Parental Controls^M Date: Mon, 12 Apr 2010 10:28:15 GMT^M P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"^M cache-control: public,must-revalidate^M Content-Length: 0^M Connection: close^M Content-Type: ^M ^M The "puts" statement is printing Received status msg: Blocked By Parental Controls But the next statement for inequality check fails with can't convert nil to string However for a different case, where the response is HTTP/1.1 200 OK^M Date: Mon, 12 Apr 2010 10:28:29 GMT^M P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"^M cache-control: public,must-revalidate^M Content-Length: 0^M Connection: close^M Content-Type: ^M ^M and I have the ruby code as: exp_msg = 'OK' puts 'Received status msg: #{response.message}' if(response.message != exp_msg) raise StandardError, "Expected #{exp_msg} Received #{response.message}" end Here there is no nil problem. I have been breaking my head and don't have the slightest clue what is happening. Can somebody please shed some light? -- Posted via http://www.ruby-forum.com/.