What's in Camping 1.4? #
Okay, you can try out Camping 1.3.69 from gems. Camping is a microframework. Railsish aesthetics for wee CGIs.
gem install camping --source code.whytheluckystiff.net
Sessioning
To get sessions working for your application:
require 'camping/session'- In your application’s create method, add a call to
Camping::Models::Schema.create_schema - Throughout your application, use the
@statevar like a hash to store your application’s data.
More notes about this at CampingSessions on the wiki.
Helpers#URL
Builds a complete URL to a controller route or a path, returning a URI object.
Assuming the Hoodwink.d app is mounted at http://localhost:3301/hoodwinkd/, in a controller or view you’ll see the following results:
>> URL()
=> (URI:http://localhost:3301/hoodwinkd/)
>> self.URL
=> (URI:http://localhost:3301/hoodwinkd/)
>> URL(Static, 'js/prototype.js')
=> (URI:http://localhost:3301/hoodwinkd/static/js/prototype.js)
>> URL("/boingboing.net/setup")
=> (URI:http://localhost:3301/hoodwinkd/boingboing.net/setup)
>> URL("http://google.com")
=> (URI:http://google.com/)
Find it also in the new docs.
Service Overrides
Adding stuff like sessioning and authentication demands hooks on the controller. Rails uses hooks like before_filter to do this. Camping doesn’t have bytes to spare to make this happen, but things have been re-stacked to let you slide in new service methods which intercept all controller calls.
class LoginError < Exception; end
module ClownsOnly
def service(*a)
unless @state.occupation == :clown
raise LoginError, "For clown's eyes only."
end
super(*a)
end
end
This service method can be slid into your application’s top module like so:
Camping.goes :Blog module Blog include ClownsOnly end
Fully explained at Before and After Overrides on the wiki.


Newob
_Why – you rock! I’ve already spent a couple days savoring camping unabridged… You do some awful clever stuff packed into a small space—koan like. Learn something new with each iteration. Sign me up as a Camper. Nice work ;-)
Danno
_why, what’s your strategy for keeping Camping under 4k?
It’s like a miracle of Zen Bhuddist engineering as it is, I want to believe you can keep it up, but it’s a doubt-laden road.
why
Oh, come on. Breaking stuff up and cutting corners starts to become natural. 4k still gives plenty of room to sift things around. I don’t think there’s been any size increase for this release.
Plus, since the sessioning stuff is optional, it’s in a separate library. I don’t want any extensions that are over a couple k, but I’ll allow a few.
Danno
It’s just… so beautiful… brings a tear to my eye.
You know, maybe you should call up the ThinkGeek guys and get them to put Camping on a shirt.
The Perl guys have their Camel shaped Camel making code, we could have a T-Shirt with a freaking FRAMEWORK on it.
olleolleolle
...or stitch-on tent-patches.
LninYO
Camping t-shirts NOW !!
LninYo
If you handcoded it in YARV bytecodes, it would like totally bring it under 2k !! :D
Comments are closed for this entry.