[Radiant] Re: Caching and Application/Site Controllers
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 wrote:
> On Fri, Oct 22, 2010 at 9:18 AM, Josh French 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 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 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
Re: [Radiant] Re: Caching and Application/Site Controllers
On Fri, Oct 22, 2010 at 9:18 AM, Josh French 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 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 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
Re: [Radiant] Re: Caching and Application/Site Controllers
> 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?
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 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 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
>
Re: [Radiant] Re: Caching and Application/Site Controllers
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 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 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
[Radiant] Re: Caching and Application/Site Controllers
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 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
