## 0.6.0 - Add `Pecorino::Block` for setting blocks directly. These are available both to `Throttle` with the same key and on their own. This can be used to set arbitrary blocks without having to configure a `Throttle` first. ## 0.5.0 - Add `CachedThrottle` for caching the throttle blocks. This allows protection to the database when the throttle is in a blocked state. - Add `Throttle#throttled` for silencing alerts - **BREAKING CHANGE** Remove `Throttle::State#retry_after`, because there is no reasonable value for that member if the throttle is not in the "blocked" state - Allow accessing `Throttle::State` from the `Throttled` exception so that the blocked throttle state can be cached downstream (in Rails cache, for example) - Make `Throttle#request!` return the new state if there was no exception raised ## 0.4.1 - Make sure Pecorino works on Ruby 2.7 as well by removing 3.x-exclusive syntax ## 0.4.0 - Use Bucket#connditional_fillup inside Throttle and throttle only when the capacity _would_ be exceeded, as opposed to throttling when capacity has already been exceeded. This allows for finer-grained throttles such as "at most once in", where filling "exactly to capacity" is a requirement. It also provides for more accurate and easier to understand throttling in general. - Make sure Bucket#able_to_accept? allows the bucket to be filled to capacity, not only to below capacity - Improve YARD documentation - Allow "conditional fillup" - only add tokens to the leaky bucket if the bucket has enough space. - Fix `over_time` leading to incorrect `leak_rate`. The divider/divisor were swapped, leading to the inverse leak rate getting computed. ## 0.3.0 - Allow `over_time` in addition to `leak_rate`, which is a more intuitive parameter to tweak - Set default `block_for` to the time it takes the bucket to leak out completely instead of 30 seconds ## 0.2.0 - [Add support for SQLite](https://github.com/cheddar-me/pecorino/pull/9) - [Use comparisons in SQL to determine whether the leaky bucket did overflow](https://github.com/cheddar-me/pecorino/pull/8) - [Change the way Structs are defined to appease Tapioca/Sorbet](https://github.com/cheddar-me/pecorino/pull/6) ## 0.1.0 - Initial release