code = %q{ # This Ruby code will be called everytime Camping.goes is called. # And "Camping" is replaced with the app module, so you can do stuff like: def Camping.foo puts "Hello World!" end
# You probably just want to do: module Camping include MyExtension end } # For Camping.goes Camping::S << code # For previus Camping.goes Camping::Apps.each { |app| app.module_eval(code.gsub("Camping", app.to_s)) } As for qsp, it's replaced by Rack::Utils.parse_query. This creates a regular Hash though, so I've written a Base#n to convert it to Camping::H. # Before: hash = Camping.qsp("hoho=1") # Now: (inside an instance of a controller) hash = n(Rack::Utils.parse_query("hoho=1")) // Magnus Holm On Tue, Mar 23, 2010 at 17:23, Matt Zukowski <m...@roughest.net> wrote: > Okay got it... but as I look at this a bit more, the ridiculous things I > had to do to make Reststop work (for Camping 1.0) are all coming back to me. > > As I recall, the root of all evil was Camping#goes. I had to override it in > order to inject the Reststop code into Camping. Camping#qsp was the second > evil, and I see that it's now gone. I'm looking around now to see what > you've done to replace it (I take it Rack took care of some of that). > > > On Tue, Mar 23, 2010 at 12:05 PM, Magnus Holm <judo...@gmail.com> wrote: > >> @env['REQUEST_METHOD'] is the HTTP method send by the client, @method is >> the method (in lowercase) Camping is going to run ("r404" for 404 etc.) >> >> // Magnus Holm >> >> >> >> On Tue, Mar 23, 2010 at 17:01, Matt Zukowski <m...@roughest.net> wrote: >> >>> Hey Magnus, while we have your attention, in 2.0 how do I get access to >>> e['REQUEST_METHOD'] inside the 'service' method? Trying to figure this out >>> as we speak... >>> >>> >>> On Tue, Mar 23, 2010 at 11:50 AM, Magnus Holm <judo...@gmail.com> wrote: >>> >>>> I find extending Camping apps to be quite easy, since it's all classes >>>> and modules, but I can understand that extending Camping itself can be >>>> difficult/weird. That said, I think a lot can be solved by defining >>>> #included and #extended. It would be great if you could tell us a bit >>>> exactly the problems you faced. We still have 1k left. >>>> >>>> Don't hurry, though. Let's get 2.0 out first. >>>> >>>> // Magnus Holm >>>> >>>> >>>> >>>> On Tue, Mar 23, 2010 at 16:07, Matt Zukowski <m...@roughest.net> wrote: >>>> >>>>> I actually have a reststop app up and running fine with Camping 2.0 >>>>> (check out Taskr at http://github.com/zuk/taskr). Tthe catch is that >>>>> it's a version of 2.0 that I forked about this time last year, and looking >>>>> at the github graph, Magnus has committed a whole slew of changes since >>>>> then. So whatever broke Reststop must have been committed in the last 10 >>>>> months or so. >>>>> >>>>> To be honest over the last year I've mostly switched form Camping to >>>>> Sinatra (and lately to Node.js, which is really really cool by the way). >>>>> The >>>>> problem with Camping, for me, is that trying to extend it is a nightmare. >>>>> I >>>>> learned this the hard way while writing Reststop and Picnic. >>>>> >>>>> Anyway I have a bit of time right now, so since there seems to be some >>>>> interest, I'll pull down the latest version of Camping and see if I can >>>>> make >>>>> it work with Reststop. I should also move Reststop to github while I'm at >>>>> it. >>>>> >>>>> On Mon, Mar 22, 2010 at 11:32 PM, Philippe Monnet <r...@monnet-usa.com >>>>> > wrote: >>>>> >>>>>> Hi David, >>>>>> >>>>>> I had played with RESTstop on the old Camping maybe six months ago. >>>>>> I have now started to take a look at what the issues are about. >>>>>> So far I have found a few things like: >>>>>> >>>>>> In reststop.rb: >>>>>> - the service method needs to retrieve the REQUEST_METHOD using >>>>>> @env['REQUEST_METHOD'] >>>>>> -the condition on the if statement on the last m.capture line of the >>>>>> render method needs to be adjusted (not sure what a[0] should be replaced >>>>>> with. So far I have temporarily replaced the line by: >>>>>> s = m.capture{send(:layout){s}} if m.respond_to?(:layout) >>>>>> >>>>>> In the blog.rb example >>>>>> - the version number for camping needs to be updated >>>>>> - require 'camping/db' should be removed since now obsolete >>>>>> - require 'markaby' needs to be added >>>>>> >>>>>> So far I can bring up the app in a browser, login, add a post. >>>>>> But if I use Restr I can only do a GET. The PUT currently fails with a >>>>>> 401. I will continue to try figuring it out over the next week or so. >>>>>> It would be great if the initial author could help us out. >>>>>> >>>>>> Philippe >>>>>> >>>>>> >>>>>> On 3/12/2010 8:04 AM, David Susco wrote: >>>>>> >>>>>> Has anyone managed to get camping to work with reststop using 1.9.354? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Camping-list mailing list >>>>>> Camping-list@rubyforge.org >>>>>> http://rubyforge.org/mailman/listinfo/camping-list >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Camping-list mailing list >>>>> Camping-list@rubyforge.org >>>>> http://rubyforge.org/mailman/listinfo/camping-list >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Camping-list mailing list >>>> Camping-list@rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/camping-list >>>> >>> >>> >>> _______________________________________________ >>> Camping-list mailing list >>> Camping-list@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/camping-list >>> >> >> >> _______________________________________________ >> Camping-list mailing list >> Camping-list@rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > > > _______________________________________________ > Camping-list mailing list > Camping-list@rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >
_______________________________________________ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list