CHANGELOG.md
June 2, 2016 ยท View on GitHub
0.5.4 (Next)
- Your contribution here.
0.5.3 (6/2/2016)
- #92: Properly set
options[:expires_in]fromglobal_cache_options- @fancyremarker.
0.5.2 (10/19/2015)
0.5.1 (11/26/2014)
- Fixed #81:
Garner.cacheloses namespace options when calling delete when cache block yieldsnil- @dblock. - Upgraded RSpec to 3.x and RuboCop to 0.27.1 - @dblock.
0.5.0 (7/17/2014)
- #70: Added a
whiny_nilsconfiguration variable (default:true) which determines whether Garner raises exceptions onnilbindings - @fancyremarker. - #72: Fix: ActiveRecord 4 support,
cache_keyis now in:nsecformat - @dblock. - #74: Removed Jeweler, rewritten .gemspec - @dblock.
- #76: Added Rubocop, Ruby-style linter - @dblock.
- #77: Running tests on Ruby 2.0, 2.1.2, Rubinius and JRuby - @dblock.
0.4.5 (10/15/2013)
- Fixed #62: fix garnered_find in
Garner::Mixins::Mongoid::Document.garnered_findto support finding multiple objects, matching Mongoid's find - @mzikherman. - Fixed #60: don't return cache keys for Mongoid::Document#identify(nil) - @fancyremarker.
0.4.4 (7/11/2013)
- Fixed #47: use a database index when generating proxy binding in
Garner::Mixins::Mongoid::Identitywith multipleGarner.config.mongoid_identity_fields- @dblock.
0.4.3 (7/5/2013)
- Stored
ruby_contextfrom which aGarner::Cache::Identitywas initialized as anattr_accessoron the object - @fancyremarker. - Fixed
cache_enabled?logic and added anocachedeclaration toGarner::Cache::Identity- @fancyremarker. - Fixed #44, in which the BindingIndex was mistakenly storing values to cache for bindings with a nil canonical binding - @fancyremarker.
- Added
Garner.config.invalidate_mongoid_rootoption, to always invalidate the root document when an embedded document is invalidated - @fancyremarker.
0.4.2 (6/28/2013)
- Fixed
Callerstrategy when using Rails - @fancyremarker.
0.4.1 (6/28/2013)
- Added a
rake benchmarktask to compare different binding key/invalidation strategy pairs - @fancyremarker. - Improved the performance of the
SafeCacheKeystrategy on virtualGarner::Mixins::Mongoid::Identitybindings by properly memoizing the corresponding document - @fancyremarker. - Improved the performance of the
SafeCacheKeystrategy on class bindings by making 1 database call per key application, instead of 3 - @fancyremarker. - Removed the
Garner.config.mongoid_binding_key_strategyandGarner.config.mongoid_invalidation_key_strategy. Garner now uses just one default key/invalidation strategy pair for all binding types - @fancyremarker. - Added an ActiveRecord mixin,
Garner::Mixins::ActiveRecord::Base, per #35 - @fancyremarker. - Eliminated the need to
require "garner/mixins/rack"before declaringGarner.config.rack_context_key_strategies, per #35 - @fancyremarker. - Fixed a bug in binding to classes via the
SafeCacheKeyandTouchstrategy pair, where class-bound results would not be invalidated when an instance of the class was destroyed - @fancyremarker. - Added
BindingIndexbinding key/invalidation strategy pair, which uses a two-level lookup for computing cache keys - @fancyremarker.
0.4.0 (6/14/2013)
- Complete rewrite of Garner. See UPGRADING for details on how to upgrade from Garner 0.3.3 and earlier versions - @fancyremarker.
- Fixed #6: Garner fails if Mongoid not loaded yet - @fancyremarker.
- Closed #12: Support arrays in
Garner.config.mongoid_identity_fields- @fancyremarker. - Closed #13: Replace faulty multiple-identity logic- @fancyremarker.
- Fixed #14: Disambiguate binding models by
:idand:slug- @fancyremarker. - Fixed #15: Remove need for
cache_asfrom subclassed Mongoid models - @fancyremarker. - Closed #23: Abstract all Grape mixins to be more generically Rack mixins - @fancyremarker.
- Closed #24: Implement
garnered_findmethod forMongoid::Documentclasses - @fancyremarker. - Extracted
Binding,ContextandIdentityas explicit classes fromObjectIdentity- @fancyremarker. - Added support for all ActiveModel-compliant ORMs - @fancyremarker.
- Removed HTTP caching responsibilities from the library entirely - @fancyremarker.
- Introduced a
SafeCacheKeybinding key strategy, which appends subsecond precision to cache keys, to make them usable - @fancyremarker. - Added a
cache_keyimplementation at the class level in Mongoid, which returns thecache_keyof the most recently updated document in the collection (by:updated_at) - @fancyremarker. - Fixed #29: Restrict the filename string used for the
Callercontext key strategy to just the portion of the path relevant to the current app. In a Rails app, this defaults to Rails.root; otherwise we search for the nearest ancestor directory containing a Gemfile - @fancyremarker.
0.3.3 (6/10/2013)
- Fix: parent documents are properly invalidated on creation of an embedded document - @fancyremarker.
0.3.2 (5/16/2013)
- Fix: calling
invalidateon an embedded document in anembeds_manyrelationship - @fancyremarker. Garner::Strategies::Keys::Callerno longer depends on ActiveSupport - @oripekelman, @dblock.- Added
Garner::Strategies::Keys::RequestPostfor POST parameters - @oripekelman.
0.3.1
- Do not attempt to fetch again objects in
Garner::Cache::ObjectIdentity.cache_multiafter they were not retrieved fromread_multi, write them directly to cache - @dblock.
0.3
- Added
Garner::Cache::ObjectIdentity.cache_multithat can now take an array of bindings to return an array of objects - @dblock. - When fetching an array of objects via
Garner::Cache::ObjectIdentity.cache_multi, Garner will useread_multiif provided by the cache store - @dblock.
0.2.1
- Faster invalidation on Mongoid model creation, only invalidate class - @dblock.
- Invalidate cache after a Mongoid model has been updated or destroyed, not before - @dblock.
0.2
- The
Keys::Callerstrategy now allows specifying the caller explicitly by passing a:calleras part of the context - @fancyremarker. - Fix:
invalidateno longer writes a new index key for each object binding; instead it only deletes existing index keys - @fancyremarker. - Fix: Invoking Garner helper methods from within an IRB session no longer crashes inside the
Keys::Callerstrategy - @fancyremarker.
0.1.3
- Split
Garner::Objects::ETaginto a configurableGarner::Strategies::ETagsmodule, makingGarner::Strategies::ETags::GrapeETagthe new default, for better integration with Grape - @fancyremarker. - Added
Garner::Strategies::Keys::Key, that inserts the value of:keywithin the requested context, useful to explicitly declare an element of a cache key - @dblock. - Fix:
Garner::Strategies::Keys::Callerexcludes lines withlib/garner, workaround for Heroku - @dblock. - Only load Grape and Mongoid mixins when necessary - @billgloff.
- Fix: Grape API version is properly passed through to key context when using
Garner::Strategies::Keys::Version- @fancyremarker. - Added support for caching responses to JSONP requests, via
Garner::Strategies::Keys::Jsonp- @fancyremarker.
0.1.2
- Fix:
Garner::Mixins::Grape::Cacheimproperly handlesnilcache hits orcache_enabled?returningfalseincache_or_304- @dblock.
0.1.1
- Initial public release at GoRuCo, read the announcement.
- Grape mixin takes a single parameter, binding and context are extracted from it - @dblock.
0.1
- Initial implementation based on @fancyremarker's original code.
- Rack middleware for cache busting,
Garner::Middleware::Cache::Bust- @dblock. - Generating ETags,
Garner::Objects::ETag- @dblock. Garner::Cache::ObjectIdentitycache - @dblock.Version,Caller,RequestPathandRequestGetkey generation strategies - @dblock.Expirationcache strategy - @dblock.- Grape and Mongoid mixins - @dblock.