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.cache
loses 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_nils
configuration variable (default:true
) which determines whetherGarner
raises exceptions onnil
bindings - @fancyremarker. -
#72: Fix: ActiveRecord 4 support,
cache_key
is now in:nsec
format - @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_find
to 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::Identity
with multipleGarner.config.mongoid_identity_fields
- @dblock.
0.4.3 (7/5/2013)¶ ↑
-
Stored
ruby_context
from which aGarner::Cache::Identity
was initialized as anattr_accessor
on the object - @fancyremarker. -
Fixed
cache_enabled?
logic and added anocache
declaration 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_root
option, to always invalidate the root document when an embedded document is invalidated - @fancyremarker.
0.4.2 (6/28/2013)¶ ↑
-
Fixed
Caller
strategy when using Rails - @fancyremarker.
0.4.1 (6/28/2013)¶ ↑
-
Added a
rake benchmark
task to compare different binding key/invalidation strategy pairs - @fancyremarker. -
Improved the performance of the
SafeCacheKey
strategy on virtualGarner::Mixins::Mongoid::Identity
bindings by properly memoizing the corresponding document - @fancyremarker. -
Improved the performance of the
SafeCacheKey
strategy on class bindings by making 1 database call per key application, instead of 3 - @fancyremarker. -
Removed the
Garner.config.mongoid_binding_key_strategy
andGarner.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
SafeCacheKey
andTouch
strategy pair, where class-bound results would not be invalidated when an instance of the class was destroyed - @fancyremarker. -
Added
BindingIndex
binding 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 fromGarner
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 forMongoid::Document
classes - @fancyremarker. -
Extracted
Binding
,Context
andIdentity
as explicit classes fromObjectIdentity
- @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 thecache_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.
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
invalidate
on an embedded document in anembeds_many
relationship - @fancyremarker. -
Garner::Strategies::Keys::Caller
no longer depends on ActiveSupport - @oripekelman, @dblock. -
Added
Garner::Strategies::Keys::RequestPost
for POST parameters - @oripekelman.
0.3.1¶ ↑
-
Do not attempt to fetch again objects in
Garner::Cache::ObjectIdentity.cache_multi
after they were not retrieved fromread_multi
, write them directly to cache - @dblock.
0.3¶ ↑
-
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 useread_multi
if 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::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 theKeys::Caller
strategy - @fancyremarker.
0.1.3¶ ↑
-
Split
Garner::Objects::ETag
into a configurableGarner::Strategies::ETags
module, makingGarner::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 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::Cache
improperly handlesnil
cache hits orcache_enabled?
returningfalse
incache_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}[https://github.com/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
andRequestGet
key generation strategies - @dblock. -
Expiration
cache strategy - @dblock.