If you're going to build cookie sessions in to the core, it should
either do the rails thing of using multiple cookies when one is not
enough for the data, or raise a descriptive exception explaining why
there's a problem and how switching to the database sessions thingo
will solve that.
I totally agree with ditching the compressed version so long as there
are new guidelines put in place as to how much camping is too much
camping. We still need to fit it in our backpacks.
It would also be good if you continue to maintain some easy way to do
the compression, so people who do care about size can get a smaller
version. Someone might want to take camping with them everywhere they
go in the form of a 3D barcode, loadable via the camera's on mobile
phones and many computers, or maybe they've been running their website
on a server they can only reach via TCP over Carrier Pigeon and it's
important to them that they can upload camping.rb with the fewest
pigeons possible.
Does Rack::Utils give us nice short easy escaping? Can we include in
to camping in a way that they are just nice short methods?
—
Jenna
On 22/05/2008, at 5:26 AM, Magnus Holm wrote:
===
1. Camping on Rack
===
I've just finished rewriting Camping to use Rack in the "core". I
got rid of
(a little less) than 1kB in camping.rb and removed lots of un-
necessary files
(lib/server/*.rb, fastcgi.rb & mongrel.rb).
bin/camping does now only provide WEBrick, Mongrel and console-
support and
should only be used in development. It uses Rack::ShowExceptions to
catch
error outside the app and I've also written a middleware for faking
X-Sendfile. For production you should create a rackup-file or setup
Rack in
some other way:
#!/usr/bin/env rackup
# Auto-detects CGI & FastCGI
# Start mongrel with: ./blog.ru -s mongrel -p 3301
require 'blog'
Blog.create
run Blog
Some notes:
* Branch: http://github.com/judofyr/camping/commits/rack
* You have to rename camping-unabridged.rb to camping.rb in order to
run apps.
* You're app is also a Rack-app (aka respond_to?(:call))
* I'm using Rack::Request (@request) and Rack::Response (@response)
* Status, headers and body must be set using @status, @headers and
@body,
not @response.status, @response.headers or @response.body
* @headers is a Rack::Utils::HeaderHash
* @root, @input and @cookies behaves equally; @env is gone
* You can delete cookies with @response.delete_cookie("key")
* Set cookies with @cookies.key = ":)" or
@response.set_cookie("key", ":)")
* You can also pass a Hash when you're setting cookies:
@cookes.key = {:value => ":)", :expires => Time.now + 3600, :path
=> '/app'}
* I've removed #qsp, #un and #escape. Use Rack::Utils instead
* This should close #104, #130 and #153
===
2. ORM-agnostic?
===
What about making Camping ORM-agnostic? If it's only AR which
requires glue,
we can just rename camping/db.rb to camping/ar.rb - if not we have
to add
camping/og.rb, camping/dm.rb, camping/sequel.rb etc too.
===
3. Cookie Sessions as default
===
What do you think about using Cookie Sessions instead of database-
based by
default (in camping/sessions.rb)? It's much lighter and makes it
simpler to
create apps without database. It also helps making Camping ORM-
agnostic.
I've fixed this in the cookie_session-branch (requires Rack)
available at
http://github.com/judofyr/camping/commits/cookie_session (highly
based on
Jenna's work)
===
4. Renaming camping-unabridged.rb to camping.rb?
===
I haven't touched camping.rb at all, do we really need to prove that
it's a
micro-framework? It just makes development/releasing harder. Let's
just forget
about the abridged version and rename camping-unabridged.rb to
camping.rb!
===
5. Camping 2.0
===
Here's my plan:
* We agree on which of these four/three features we should implement
* _why or zimbatm (or someone who really knows Camping) double-checks
everything and fixes any bugs.
* Releasing 2.0 - Make lots of hype so everybody ports their apps to
2.0
* Then we'll see if any bugs appear, fixes them quickly and
releasing 2.1.
---
This is just some proposals, the community (aka YOU) have to decide
what we
should do. So what are your thoughts?
---
Magnus Holm
_______________________________________________
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