Thanks for your response, Jim.  As I've read about Rack::Cache (not having
been very familiar with Rack before), I've gotten a certain understanding
that I'm not entirely sure is accurate and I'd like to ask your confirmation
on, or any advice you (or anyone else) might have.

Here's what I think I understand:  Since Rack::Cache is middleware, it
operates completely independently of the Rails/Radiant application.  Apache
talks to Rack::Cache, and Rack::Cache decides whether to return something it
has stored or go to the Rails/Radiant app for a fresh page.  As such,
Rails/Radiant has no say in what gets cached, when it gets cached, when it
gets refreshed, or what the cache key is named.  Is this right?

If so, does that mean that trying to do what I want to do is basically a
lost cause if I stick with Rack::Cache?

If so, does it make sense for me to just turn off normal Radiant caching
altogether and roll my own caching solution inside of Rails/Radiant with
something like memcached?  I could insert that logic at the point of
rendering--just check the cache for the right slug+locale combo before
performing the render and return from the cache if found.

Am I barking up the right tree here?

Thanks,
Brett



On Thu, Mar 11, 2010 at 1:44 PM, Jim Gay <j...@saturnflyer.com> wrote:

> You're going to need to look at Rack Cache
>
> But in the radiant repo, look here
> http://github.com/radiant/radiant/blob/master/lib/radiant/cache.rb
> http://github.com/radiant/radiant/tree/master/vendor/rack-cache/
>
> On Thu, Mar 11, 2010 at 3:35 PM, Brett Rasmussen
> <brett.rasmus...@twoedge.com> wrote:
> > I'd like to use Radiant's standard cache but have control over what goes
> > into it.  Specifically, I'd like to store multiple rendered copies of the
> > same page with the same slug but with small pieces different based on
> locale
> > (which will probably just mean a session variable).
> >
> > So, for example, I'll have a "products" page at /products, and everything
> > will be the same throughout the page except a couple of prices.  On the
> > prices, I'll show pounds for the UK and Euros for Ireland.
> >
> > I'm familiar with the multilingual_pages extension, but that is not
> > acceptable because the customer requires that it be the exact same slug,
> not
> > a separate one for each locale.
> >
> > So I just want to change how the rendered pages get put into and pulled
> out
> > of the cache.  I'd like to store them not just keyed off of the slug but
> by
> > slug plus locale.  Thus, each slug would be stored multiple times--once
> for
> > each locale.  Then, when I pull them out of the cache, I'll look for the
> > same slug+locale combo and send the matching entry on down.
> >
> > My question is this: Can someone point me to the right place in the
> radiant
> > code?  Where is it that cache keys are created and rendered pages stored
> in
> > the cache with said keys?  I'm also open to other suggestions about how
> to
> > approach this issue, but I'm especially interested in finding that code
> so I
> > can monkey-patch it.  I've looked through it and thus far haven't come
> > across the obvious place.
> >
> > Thanks,
> > Brett
> > _______________________________________________
> > Radiant mailing list
> > Post: Radiant@radiantcms.org
> > Search: http://radiantcms.org/mailing-list/search/
> > List Site: http://lists.radiantcms.org/mailman/listinfo/radiant
> > Radiant: http://radiantcms.org
> > Extensions: http://ext.radiantcms.org
> >
>
>
>
> --
> Jim Gay
> http://www.saturnflyer.com
> _______________________________________________
> Radiant mailing list
> Post: Radiant@radiantcms.org
> Search: http://radiantcms.org/mailing-list/search/
> List Site: http://lists.radiantcms.org/mailman/listinfo/radiant
> Radiant: http://radiantcms.org
> Extensions: http://ext.radiantcms.org
>
_______________________________________________
Radiant mailing list
Post: Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
List Site: http://lists.radiantcms.org/mailman/listinfo/radiant
Radiant: http://radiantcms.org
Extensions: http://ext.radiantcms.org

Reply via email to