On Fri, Oct 22, 2010 at 9:18 AM, Josh French <[email protected]> wrote:
> So do you think it's possible to add the logic to a middleware object and
> add the middleware object to the stack?
>
> Actually... wouldn't that work as long as it was inserted before
> Rack::Cache? Can someone more familiar with the caching layer confirm/deny?

Yes. As long as it's injected before the cache, you're golden.

> On Oct 21, 2010, at 10:38 PM, Stan Rawrysz wrote:
>
> So do you think it's possible to add the logic to a middleware object and
> add the middleware object to the stack?
> Put something like the following in the extension?
>   extension_config do |config|
>     config.middleware.use GeoIpRedirect
>   end
> I'm pretty new to middleware, so I'm not certain that this will get called
> every time...
> Stan
>
> On Thu, Oct 21, 2010 at 4:25 PM, swartz <[email protected]> wrote:
>>
>> As far as I understand if there is a cached page already available the
>> radian sitecontroller doesn't even get executed. The server spits out
>> the generated page.
>>
>> If you wish to have code executed everytime for every page access, you
>> pretty much have to disable caching.
>> If it's only afew specific pages that require this, you want to
>> declare your own page type and define the following:
>>
>> def cache?
>>  false
>> end
>>
>> On Oct 21, 2:53 pm, Stan Rawrysz <[email protected]> wrote:
>> > I've written an extension that needs to do some processing on every
>> > call to a page in the cms. Basically, it checks for a cookie and
>> > redirects the user if a certain value is present. I'm running into a
>> > problem where that piece of code is not being called after the first
>> > call to the app. I believe it's because of caching...
>> >
>> > When i set cache_timeout to small, it works:
>> >    SiteController.cache_timeout = 1.second
>> >
>> > The extension is a SiteController extension:
>> >
>> >   def activate
>> >     Page.class_eval {
>> >       SiteController.send :include,
>> > IpRedirect::SiteControllerExt
>> >     }
>> >   end
>> >
>> > The controller:
>> >
>> >   module SiteControllerExt
>> >
>> >     def self.included(base)
>> >       base.class_eval do
>> >         base.send(:include, InstanceMethods)
>> >         before_filter :lookup_preferred_language_and_redirect
>> >     end
>> >
>> >     module InstanceMethods
>> >       def lookup_preferred_language_and_redirect
>> >           ....
>> >       end
>> >
>> > Is it possible that the before_filter is not called when caching is
>> > turned on? Is there a way to make sure
>> > that :lookup_preferred_language_and_redirect is called regardless of
>> > caching?
>> >
>> > I'm on 0.8.2 for this one.
>> >
>> > Thanks in advance!
>> > Stan
>
>



-- 
Jim Gay
Saturn Flyer LLC
http://www.saturnflyer.com
571-403-0338

Reply via email to