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

Add HTTP::Response#content_length #365

Closed
wants to merge 1 commit into from

Conversation

janko
Copy link
Member

@janko janko commented Jul 23, 2016

When converting an HTTP response object to an IO, I wanted that #size returns the value of the Content-Length header converted to integer, or nil if it's not present:

Integer(response["Content-Length"]) if response["Content-Length"]

I thought it would be nice to add this convenience method to HTTP.rb.

@ixti ixti self-assigned this Jul 25, 2016
@ixti
Copy link
Member

ixti commented Aug 1, 2016

Thanks! Merged via fb1e90c.

@ixti ixti closed this Aug 1, 2016
@janko janko deleted the response-content_length branch August 1, 2016 16:11
@britishtea
Copy link
Contributor

Perhaps a bit late, but I'm not a big fan of this method raising an ArgumentError when Content-Language has an unexpected value.

Can we rescue the exception and return nil instead in this case.

    context "with Content-Length not an integer" do
      let(:headers) { {"Content-Length" => "foo"} }

      it { is_expected.to be_nil }
    end

@janko
Copy link
Member Author

janko commented Aug 2, 2016

@britishtea I'm ok with this idea 👍

@ixti
Copy link
Member

ixti commented Aug 2, 2016

It's never too late. If you will send a PR - will merge it shortly - I'm on the side of this proposal too.

@tarcieri
Copy link
Member

tarcieri commented Aug 2, 2016

👍

ixti added a commit that referenced this pull request Aug 3, 2016
@ixti
Copy link
Member

ixti commented Aug 3, 2016

@britishtea pushed fixed with your proposal.

@britishtea britishtea mentioned this pull request Aug 18, 2016
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