\$\begingroup\$
\$\endgroup\$
1
I got sick of every time I make an Http request validating that the response was a success. I did a lot of:
if response.class == Net::HTTPOK
or
if response.is_a? Net::HTTPSuccess
I wanted something a little prettier so I came up with the following. I don't write a lot of class extensions like this so I wanted some input.
require 'net/http'
class Net::HTTPResponse
def success?
return false if ! self.is_a? Net::HTTPSuccess
return true
end
end
Now once the file is included I can say:
if response.success?
200_success
145k22 gold badges190 silver badges478 bronze badges
asked Mar 28, 2018 at 19:46
-
\$\begingroup\$ Just about every alternative to Net::HTTP has a better interface. Don't feel compelled to use it. \$\endgroup\$Mark Thomas– Mark Thomas2018年03月29日 16:29:09 +00:00Commented Mar 29, 2018 at 16:29
1 Answer 1
\$\begingroup\$
\$\endgroup\$
1
Though your solution would work, I would have gone for something like this:
class Net::HTTPResponse
def success?
false
end
end
class Net::HTTPSuccess
def success?
true
end
end
If you do keep your solution, you could simplify it to:
class Net::HTTPResponse
def success?
self.is_a? Net::HTTPSuccess
end
end
answered Mar 29, 2018 at 15:29
-
\$\begingroup\$ A short comment about what like this or could simplify it to mean would be great ;-) \$\endgroup\$t3chb0t– t3chb0t2018年03月29日 17:44:50 +00:00Commented Mar 29, 2018 at 17:44
lang-rb