[Radiant] Re: Caching and Application/Site Controllers

2010-10-22 Thread Stan Rawrysz
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

2010-10-22 Thread Jim Gay
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

2010-10-22 Thread Josh French
> 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

2010-10-21 Thread Stan Rawrysz
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

2010-10-21 Thread swartz
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