On Fri, Mar 12, 2010 at 2:01 PM, Brett Rasmussen
<brett.rasmus...@twoedge.com> wrote:
> 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?

Not entirely.
Radiant sets up the values for cache control:
http://github.com/radiant/radiant/blob/master/app/controllers/site_controller.rb#L7
http://github.com/radiant/radiant/blob/master/app/controllers/site_controller.rb#L46-L53
So we do have control over it.

>
> 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?

No, but you'll probably need to write your own rack middleware.

>
> 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.

That could be an option too, but might be more work than a new piece
of middleware. Although I've tried neither.

>
> 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
>



-- 
Jim Gay
Saturn Flyer LLC
j...@saturnflyer.com
http://www.saturnflyer.com
571-403-0338
_______________________________________________
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