Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate status codes by type and add helper methods to check status #331

Merged
merged 3 commits into from
Apr 11, 2016

Conversation

mwitek
Copy link
Contributor

@mwitek mwitek commented Apr 10, 2016

  • Break status codes up by type
  • Add status boolean helper methods to check status types.
    example usage:
HTTP.get('http://google.com').status.informational?
HTTP.get('http://google.com').status.success?
HTTP.get('http://google.com').status.redirect?
HTTP.get('http://google.com').status.client_error?
HTTP.get('http://google.com').status.server_error?

returns true or false, depending on status code type

@ook
Copy link
Contributor

ook commented Apr 11, 2016

Nice, I like it 👍
PR seems valid to me.

@tarcieri
Copy link
Member

Yeah, looks good to me too

@tarcieri tarcieri merged commit cc1db9a into httprb:master Apr 11, 2016
@ixti
Copy link
Member

ixti commented Apr 11, 2016

Why not simply:

def informational?
  100 <= self && self < 200
end

def success?
  200 <= self && self < 300
end

# ...

@ixti
Copy link
Member

ixti commented Apr 11, 2016

Is there a real need in those constants?

@ixti
Copy link
Member

ixti commented Apr 11, 2016

There's even a warning line in the beginning of reasons file:
https://github.com/mwitek/http/blob/824b90b33aefcfbf8110106d1f5c29815280c3fe/lib/http/response/status/reasons.rb#L1

@ixti
Copy link
Member

ixti commented Apr 11, 2016

Just for the record, when you need to check if key is in hash or not it's better to use Hash#key? rather than creating new Array with Hash#keys and then calling #include? on that array. :D

@mwitek
Copy link
Contributor Author

mwitek commented Apr 11, 2016

:doh:! Thanks for the tip :)

jsonn pushed a commit to jsonn/pkgsrc that referenced this pull request Oct 18, 2016
## 2.0.3 (2016-08-03)

* [#365](httprb/http#365)
  Add `HTTP::Response#content_length`
  ([@janko-m])

* [#335](httprb/http#335),
  [#360](httprb/http#360)
  Set `Content-Length: 0` header for `nil` bodies.
  ([@britishtea])


## 2.0.2 (2016-06-24)

* [#353](httprb/http#353)
  Avoid a dependency cycle between Client and Connection classes.
  ([@jhbabon])


## 2.0.1 (2016-05-12)

* [#341](httprb/http#341)
  Refactor some string manipulations so they are more performant
  (up to 3-4x faster) and more concise.
  ([@tonyta])

* [#339](httprb/http#341)
  Always use byte methods when writing/slicing the write buffer.
  ([@zanker])


## 2.0.0 (2016-04-23)

* [#333](httprb/http#333)
  Fix HTTPS request headline when sent via proxy.
  ([@Connorhd])

* [#331](httprb/http#331)
  Add `#informational?`, `#success?`, `#redirect?`, `#client_error?` and
  `#server_error?` helpers to `Response::Status`.
  ([@mwitek])

* [#330](httprb/http#330)
  Support custom CONNECT headers (request/response) during HTTPS proxy requests.
  ([@smudge])

* [#319](httprb/http#319)
  Drop Ruby 1.9.x support.
  ([@ixti])


## 1.0.4 (2016-03-19)

* [#320](httprb/http#320)
  Fix timeout regression.
  ([@tarcieri])


## 1.0.3 (2016-03-16)

* [#314](httprb/http#314)
  Validate charset before forcing encoding.
  ([@kylekyle])

* [#318](httprb/http#318)
  Remove redundant string allocations upon header names normalization.
  ([@ixti])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants