Awesome. These seems to have fixed it: extension_config do |config| if config.middleware.include? Radiant::Cache config.middleware.insert_before(Radiant::Cache, GeoIpRedirect) else config.middleware.use GeoIpRedirect end end
I'll reply back if my Qa team finds out it doesn't. :) On Oct 22, 6:57 am, Jim Gay <j...@saturnflyer.com> wrote: > On Fri, Oct 22, 2010 at 9:18 AM, Josh French <j...@digitalpulp.com> 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 <netv...@gmail.com> 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 <smoo...@gmail.com> 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 LLChttp://www.saturnflyer.com > 571-403-0338