- [BREAKING] Drop support for Active Support < 6.0
- [BREAKING] Require casual_support ~> 4.0
- [BREAKING] Require mini_sanity ~> 2.0
- [BREAKING] Require pleasant_path ~> 2.0
- [BREAKING] Remove
JsonParser.json_parse_options
- Use
::JSON.load_default_options
instead
- Use
- [BREAKING] Rename
Grubby#singleton
toGrubby#fulfill
- [BREAKING] Change
Grubby#fulfill
to return block's result
- Add
JsonParser#mech
attribute for parity withMechanize::Page#mech
- Ensure time spent fetching a response does not count toward the time to sleep between requests
- Prevent sleep between requests when following a redirect
- Prevent duplicates in
Scraper.fields
- Fix
URI#query_param
when query is nil - Fix
PageScraper.scrape_file
andJsonScraper.scrape_file
when path contains characters that need to be URI-encoded
- Add
Grubby#journal=
- Add
$grubby
global defaultGrubby
instance - Add
Scraper.scrape
- Add
Scraper.each
- Support
:if
and:unless
options forScraper.scrapes
- Fix fail-fast behavior of inherited scraper fields
- Fix
JsonParser
on empty response body - Loosen Active Support version constraint
- Add
Grubby#ok?
- Add
PageScraper.scrape_file
andJsonScraper.scrape_file
- Add
Mechanize::Parser#save_to
andMechanize::Parser#save_to!
, which are inherited byMechanize::Download
andMechanize::File
- Add
URI#basename
- Add
URI#query_param
- Add utility methods from ryoba
- Add
Scraper::Error#scraper
andScraper#errors
for interactive debugging with e.g.byebug
- Improve log messages and error formatting
- Fix compatibility with net-http-persistent gem v3.0
- Initial release