12 KiB
5.2.4 (2021-09-12)
- Keep original cookies between redirections (@antprt)
5.2.3 (2021-08-03)
- Bump addressable version requirement to 2.8+ to remediate vulnerability (@aldodelgado)
5.2.2 (2021-05-27)
-
Add info about received content length in
Down::TooLarge
error (@evheny0) -
Relax http.rb constraint to allow versions 5.x (@mgrunberg)
5.2.1 (2021-04-26)
- Raise
Down::NotModified
on 304 response status inDown::NetHttp#open
(@ellafeldmann)
5.2.0 (2020-09-20)
-
Add
:uri_normalizer
option toDown::NetHttp
(@janko) -
Add
:http_basic_authentication
option toDown::NetHttp#open
(@janko) -
Fix uninitialized instance variables warnings in
Down::ChunkedIO
(@janko) -
Handle unknown HTTP error codes in
Down::NetHttp
(@darndt)
5.1.1 (2020-02-04)
- Fix keyword arguments warnings on Ruby 2.7 in
Down.download
andDown.open
(@janko)
5.1.0 (2020-01-09)
-
Fix keyword arguments warnings on Ruby 2.7 (@janko)
-
Fix
FrozenError
exception inDown::ChunkedIO#readpartial
(@janko) -
Deprecate passing headers as top-level options in
Down::NetHttp
(@janko)
5.0.1 (2019-12-20)
- In
Down::NetHttp
only use Addressable normalization ifURI.parse
fails (@coding-chimp)
5.0.0 (2019-09-26)
-
Change
ChunkedIO#each_chunk
to return chunks in original encoding (@janko) -
Always return binary strings in
ChunkedIO#readpartial
(@janko) -
Handle frozen chunks in
Down::ChunkedIO
(@janko) -
Change
ChunkedIO#gets
to return lines in specified encoding (@janko) -
Halve memory allocation for
ChunkedIO#gets
(@janko) -
Halve memory allocation for
ChunkedIO#read
without arguments (@janko) -
Drop support for
HTTP::Client
argument inDown::HTTP.new
(@janko) -
Repurpose
Down::NotFound
to be raised on404 Not Found
response (@janko)
4.8.1 (2019-05-01)
-
Make
ChunkedIO#read
/#readpartial
with length always return strings in binary encoding (@janko) -
In
ChunkedIO#gets
respect the limit argument when separator is nil (@edlebert)
4.8.0 (2018-12-19)
-
Prefer UTF-8 filenames in
Content-Disposition
header forTempfile#original_filename
(@janko) -
Make the internal Tempfile of
Down::ChunkedIO
inaccessible to outside programs (@janko)
4.7.0 (2018-11-18)
- Allow request headers to be passed via
:headers
toDown::NetHttp#download
and#open
(@janko)
4.6.1 (2018-10-24)
- Release HTTP.rb version constraint to allow HTTP.rb 4.x (@janko)
4.6.0 (2018-09-29)
-
Ensure URLs are properly encoded in
NetHttp#download
and#open
using Addressable (@linyaoli) -
Raise
ResponseError
with clear message when redirect URI was invalid in Down::NetHttp (@janko)
4.5.0 (2018-05-11)
-
Deprecate passing an
HTTP::Client
object toDown::Http#initialize
(@janko) -
Add ability to pass a block to
Down::Http#initialize
for extending default options (@janko) -
Return empty string when length is zero in
ChunkedIO#read
andChunkedIO#readpartial
(@janko) -
Make
posix-spawn
optional (@janko)
4.4.0 (2018-04-12)
-
Add
:method
option toDown::Http
for specifying the request method (@janko) -
Set default timeout of 30 for each operation to all backends (@janko)
4.3.0 (2018-03-11)
-
Accept CLI arguments as a list of symbols in
Down::Wget#download
(@janko) -
Avoid potential URL parsing errors in
Down::Http::DownloadedFile#filename_from_url
(@janko) -
Make memory usage of
Down::Wget#download
constant (@janko) -
Add
:destination
option toDown.download
for specifying download destination (@janko)
4.2.1 (2018-01-29)
-
Reduce memory allocation in
Down::ChunkedIO
by 10x when buffer string is used (@janko) -
Reduce memory allocation in
Down::Http.download
by 10x.
4.2.0 (2017-12-22)
- Handle
:max_redirects
inDown::NetHttp#open
and follow up to 2 redirects by default (@janko)
4.1.1 (2017-10-15)
-
Raise all system call exceptions as
Down::ConnectionError
inDown::NetHttp
(@janko) -
Raise
Errno::ETIMEDOUT
asDown::TimeoutError
inDown::NetHttp
(@janko) -
Raise
Addressable::URI::InvalidURIError
asDown::InvalidUrl
inDown::Http
(@janko)
4.1.0 (2017-08-29)
-
Fix
FiberError
occurring onDown::NetHttp.open
when response is chunked and gzipped (@janko) -
Use a default
User-Agent
inDown::NetHttp.open
(@janko) -
Fix raw read timeout error sometimes being raised instead of
Down::TimeoutError
inDown.open
(@janko) -
Down::ChunkedIO
can now be parsed by the CSV Ruby standard library (@janko) -
Implement
Down::ChunkedIO#gets
(@janko) -
Implement
Down::ChunkedIO#pos
(@janko)
4.0.1 (2017-07-08)
-
Load and assign the
NetHttp
backend immediately onrequire "down"
(@janko) -
Remove undocumented
Down::ChunkedIO#backend=
that was added in 4.0.0 to avoid confusion (@janko)
4.0.0 (2017-06-24)
-
Don't apply
Down.download
andDown.open
overrides when loading a backend (@janko) -
Remove
Down::Http.client
attribute accessor (@janko) -
Make
Down::NetHttp
,Down::Http
, andDown::Wget
classes instead of modules (@janko) -
Remove
Down.copy_to_tempfile
(@janko) -
Add Wget backend (@janko)
-
Add
:content_length_proc
and:progress_proc
to the HTTP.rb backend (@janko) -
Halve string allocations in
Down::ChunkedIO#readpartial
when buffer string is not used (@janko)
3.2.0 (2017-06-21)
-
Add
Down::ChunkedIO#readpartial
for more memory efficient reading (@janko) -
Fix
Down::ChunkedIO
not returning second part of the last chunk if it was previously partially read (@janko) -
Strip internal variables from
Down::ChunkedIO#inspect
and show only the important ones (@janko) -
Add
Down::ChunkedIO#closed?
(@janko) -
Add
Down::ChunkedIO#rewindable?
(@janko) -
In
Down::ChunkedIO
only create the Tempfile if it's going to be used (@janko)
3.1.0 (2017-06-16)
-
Split
Down::NotFound
into explanatory exceptions (@janko) -
Add
:read_timeout
and:open_timeout
options toDown::NetHttp.open
(@janko) -
Return an
Integer
indata[:status]
on a result ofDown.open
when using the HTTP.rb strategy (@janko)
3.0.0 (2017-05-24)
-
Make
Down.open
pass encoding from content type charset toDown::ChunkedIO
(@janko) -
Add
:encoding
option toDown::ChunkedIO.new
for specifying the encoding of returned content (@janko) -
Add HTTP.rb backend as an alternative to Net::HTTP (@janko)
-
Stop testing on MRI 2.1 (@janko)
-
Forward cookies from the
Set-Cookie
response header when redirecting (@janko) -
Add
frozen-string-literal: true
comments for less string allocations on Ruby 2.3+ (@janko) -
Modify
#content_type
to return nil instead ofapplication/octet-stream
whenContent-Type
is blank inDown.download
(@janko) -
Down::ChunkedIO#read
,#each_chunk
,#eof?
,rewind
now raise anIOError
whenDown::ChunkedIO
has been closed (@janko) -
Down::ChunkedIO
now caches only the content that has been read (@janko) -
Add
Down::ChunkedIO#size=
to allow assigning size after theDown::ChunkedIO
has been instantiated (@janko) -
Make
:size
an optional argument inDown::ChunkedIO
(@janko) -
Call enumerator's
ensure
block whenDown::ChunkedIO#close
is called (@janko) -
Add
:rewindable
option toDown::ChunkedIO
andDown.open
for disabling caching read content into a file (@janko) -
Drop support for MRI 2.0 (@janko)
-
Drop support for MRI 1.9.3 (@janko)
-
Remove deprecated
:progress
option (@janko) -
Remove deprecated
:timeout
option (@janko) -
Reraise only a subset of exceptions as
Down::NotFound
inDown.download
(@janko) -
Support streaming of "Transfer-Encoding: chunked" responses in
Down.open
again (@janko) -
Remove deprecated
Down.stream
(@janko)
2.5.1 (2017-05-13)
- Remove URL from the error messages (@janko)
2.5.0 (2017-05-03)
-
Support both Strings and
URI
objects inDown.download
andDown.open
(@olleolleolle) -
Work around a
CGI.unescape
bug in Ruby 2.4. -
Apply HTTP Basic authentication contained in URLs in
Down.open
. -
Raise
Down::NotFound
on 4xx and 5xx responses inDown.open
. -
Write
:status
and:headers
information toDown::ChunkedIO#data
inDown.open
. -
Add
#data
attribute toDown::ChunkedIO
for saving custom result data. -
Don't save retrieved chunks into the file in
Down::ChunkedIO#each_chunk
. -
Add
:proxy
option toDown.download
andDown.open
.
2.4.3 (2017-04-06)
- Show the input URL in the
Down::Error
message.
2.4.2 (2017-03-28)
- Don't raise
StopIteration
inDown::ChunkedIO
when:chunks
is an empty Enumerator.
2.4.1 (2017-03-23)
- Correctly detect empty filename from
Content-Disposition
header, and in this case continue extracting filename from URL.
2.4.0 (2017-03-19)
-
Allow
Down.open
to accept request headers as options with String keys, just likeDown.download
does. -
Decode URI-decoded filenames from the
Content-Disposition
header -
Parse filenames without quotes from the
Content-Disposition
header
2.3.8 (2016-11-07)
- Work around
Transfer-Encoding: chunked
responses by downloading whole response body.
2.3.7 (2016-11-06)
- In
Down.open
send requests using the URI path instead of the full URI.
2.3.6 (2016-07-26)
-
Read #original_filename from the "Content-Disposition" header.
-
Extract
Down::ChunkedIO
into a file, so that it can be required separately. -
In
Down.stream
close the IO after reading from it.
2.3.5 (2016-07-18)
- Prevent reading the whole response body when the IO returned by
Down.open
is closed.
2.3.4 (2016-07-14)
- Require
net/http
2.3.3 (2016-06-23)
-
Improve
Down::ChunkedIO
(and thusDown.open
):-
#each_chunk
and#read
now automatically call:on_close
when all chunks were downloaded -
#eof?
had incorrect behaviour, where it would return true if everything was downloaded, instead only when it's also at the end of the file -
#close
can now be called multiple times, as the:on_close
will always be called only once -
end of download is now detected immediately when the last chunk was downloaded (as opposed to after trying to read the next one)
-
2.3.2 (2016-06-22)
-
Add
Down.open
for IO-like streaming, and deprecateDown.stream
(janko-m) -
Allow URLs with basic authentication (
http://user:password@example.com
) (janko-m)
2.3.1 (2016-06-22) (yanked)
2.3.0 (2016-06-22) (yanked)
2.2.1 (2016-06-06)
-
Make Down work on Windows (martinsefcik)
-
Close an internal file descriptor that was left open (martinsefcik)
2.2.0 (2016-05-19)
-
Add ability to follow redirects, and allow maximum of 2 redirects by default (janko-m)
-
Fix a potential Windows issue when extracting
#original_filename
(janko-m) -
Fix
#original_filename
being incomplete if filename contains a slash (janko-m)
2.1.0 (2016-04-12)
-
Make
:progress_proc
and:content_length_proc
work with:max_size
(janko-m) -
Deprecate
:progress
in favor of open-uri's:progress_proc
(janko-m) -
Deprecate
:timeout
in favor of open-uri's:open_timeout
and:read_timeout
(janko-m) -
Add
Down.stream
for streaming remote files in chunks (janko-m) -
Replace deprecated
URI.encode
withCGI.unescape
in downloaded file's#original_filename
(janko-m)
2.0.1 (2016-03-06)
- Add error message when file was to large, and use a simple error message for other generic download failures (janko-m)
2.0.0 (2016-02-03)
-
Fix an issue where valid URLs were transformed into invalid URLs (janko-m)
- All input URLs now have to be properly encoded, which should already be the case in most situations.
-
Include the error class when download fails (janko-m)
1.1.0 (2016-01-26)
- Forward all additional options to open-uri (janko-m)
1.0.5 (2015-12-18)
- Move the open-uri file to the new location instead of copying it (janko-m)
1.0.4 (2015-11-19)
- Delete the old open-uri file after using it (janko-m)
1.0.3 (2015-11-16)
-
Fix
#download
and#copy_to_tempfile
not preserving the file extension (janko-m) -
Fix
#copy_to_tempfile
not working when given a nested basename (janko-m)
1.0.2 (2015-10-24)
- Fix Down not working with Ruby 1.9.3 (janko-m)
1.0.1 (2015-10-01)
- Don't allow redirects when downloading files (janko-m)