Hi,
In my main Camping module I'm including the views: include Views # We include the Views module so we can call them as methods. My controllers call those views directly, as I'm generating always .xml responses, never .html If I remove the Include Views the filters work as expected, but not my Controllers that can't call directly the views Why it's not working if I just include the views ? Also , I noted that some examples have all de models nested inside the main Camping Model, and some others are defined outside it. My problem is the same no matter wich approach I take. Here is some code: require 'camping' require 'ostruct' require 'builder' require 'filtering_camping' Camping.goes :List module List include CampingFilters before [:ResumeGroupedByDevice, :ResumeGroupedl] do @device = Device.find_by_device_id(input.device_uuid) end include Views # We include the Views module so we can call them as methods. module List::Controllers ... class Device < Base end ... module List::Controllers ... class ResumeGroupedByDevice < R '/people/resume_by_device' def post @resume = Person.find(:all,xxxxxxxxxxxx) xml :people_resume_by_device end end ... module List::Helpers def xml(name) # We'll need to send this as text/xml @headers["Content-Type"] = "text/xml" result = String.new # The builder takes a `target` where the XML will end up builder = Builder::XmlMarkup.new(:target => result, :indent => 2) # Generates a <?xml version="1.0" encoding="UTF-8" ?> builder.instruct! # Calls the method you sent in, passing in the builder as an argument send(name, builder) # Return the restult result end ... module List::Views def people_resume_by_device(xml) xml.groups(:found => @resume.size) do @resume.each do |element| xml.group do xml.id(0) # future use! xml.device_name(element.device_name) xml.count(element.count) end end end end thanks .... r. On 3oct, 2010, at 16:30 , Philippe Monnet wrote: > Take a look at one of my blog posts on using Camping and OAuth, there a > section regarding the use of filters: > http://blog.monnet-usa.com/?p=293#caoatodoa > I had packaged Magnus' filtering_camping library as a gem. > You can also see how I use filters in the Camping OAuth plugin: > http://github.com/techarch/camping-oauth > See > > To implement filtering: > 1) gem install filtering_camping > > 2) in your main Camping module add: > include CampingFilters > > 3) still in your main module add your global filters: > > before :all do | x | > Camping::Models::Base.logger.debug "[before] filter on #{x.inspect}" > end > > after :all do > end > > 4) add your controller specific filters > > # when targeting a single controller > before :MyController1 do > #your filter logic > end > > after :MyController1 do > #your filter logic > end > > # when targeting multiple controllers use an array > before [:MyController2, MyController3] do > #your filter logic > end > > after [:MyController2, MyController3] do > #your filter logic > end
_______________________________________________ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list