You can look at CptnRuby.rb for a basic (totally non-smooth) camera, it's being implemented via screen_x and screen_y variables that are then simply subtracted from all drawing operations. I am a bit hesitant to implement a more complex, smooth camera because there are so many ways to do it, and I don't want to force my design ideas on anyone ;)
Support for automatically adjusting the positions of a series of draw calls has been discussed here:
http://www.libgosu.org/cgi-bin/mwf/topic_show.pl?tid=359This still does not include the logic of the camera's own movement though.