All Versions
Latest Version
Avg Release Cycle
135 days
Latest Release

Changelog History
Page 2

  • v0.4.0 Changes

    June 17, 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 :id and :slug- @fancyremarker.
    • ๐Ÿ›  Fixed #15: Remove need for cache_as from subclassed Mongoid models - @fancyremarker.
    • Closed #23: Abstract all Grape mixins to be more generically Rack mixins - @fancyremarker.
    • Closed #24: Implement garnered_find method for Mongoid::Document classes - @fancyremarker.
    • Extracted Binding, Context and Identity as explicit classes from ObjectIdentity - @fancyremarker.
    • โž• Added support for all ActiveModel-compliant ORMs - @fancyremarker.
    • โœ‚ Removed HTTP caching responsibilities from the library entirely - @fancyremarker.
    • Introduced a SafeCacheKey binding key strategy, which appends subsecond precision to cache keys, to make them usable - @fancyremarker.
    • Added a cache_key implementation at the class level in Mongoid, which returns the cache_key of the most recently updated document in the collection (by :updated_at) - @fancyremarker.
    • ๐Ÿ›  Fixed #29: Restrict the filename string used for the Caller context 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.
  • v0.3.3 Changes

    June 10, 2013
    • ๐Ÿ›  Fix: parent documents are properly invalidated on creation of an embedded document - @fancyremarker.
  • v0.3.2 Changes

    • ๐Ÿ›  Fix: calling invalidate on an embedded document in an embeds_many relationship - @fancyremarker.
    • ๐Ÿ‘ Garner::Strategies::Keys::Caller no longer depends on ActiveSupport - @oripekelman, @dblock.
    • โž• Added Garner::Strategies::Keys::RequestPost for POST parameters - @oripekelman.
  • v0.3.1 Changes

    • Do not attempt to fetch again objects in Garner::Cache::ObjectIdentity.cache_multi after they were not retrieved from read_multi, write them directly to cache - @dblock.


    • โž• Added Garner::Cache::ObjectIdentity.cache_multi that 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 use read_multi if provided by the cache store - @dblock.
  • v0.2.1 Changes

    • Faster invalidation on Mongoid model creation, only invalidate class - @dblock.
    • โšก๏ธ Invalidate cache after a Mongoid model has been updated or destroyed, not before - @dblock.


    • The Keys::Caller strategy now allows specifying the caller explicitly by passing a :caller as part of the context - @fancyremarker.
    • ๐Ÿ›  Fix: invalidate no 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::Caller strategy - @fancyremarker.
  • v0.1.3 Changes

    • ๐Ÿ”ง Split Garner::Objects::ETag into a configurable Garner::Strategies::ETags module, making Garner::Strategies::ETags::GrapeETag the new default, for better integration with Grape - @fancyremarker.
    • โž• Added Garner::Strategies::Keys::Key, that inserts the value of :key within the requested context, useful to explicitly declare an element of a cache key - @dblock.
    • ๐Ÿ›  Fix: Garner::Strategies::Keys::Caller excludes lines with lib/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.
  • v0.1.2 Changes

    • Fix: Garner::Mixins::Grape::Cache improperly handles nil cache hits or cache_enabled? returning false in cache_or_304 - @dblock.
  • v0.1.1 Changes

    • ๐ŸŽ‰ Initial public release at GoRuCo, read the announcement.
    • Grape mixin takes a single parameter, binding and context are extracted from it - @dblock.


    • ๐ŸŽ‰ 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::ObjectIdentity cache - @dblock.
    • Version, Caller, RequestPath and RequestGet key generation strategies - @dblock.
    • Expiration cache strategy - @dblock.
    • Grape and Mongoid mixins - @dblock.