BedSheet is a Fantom framework for delivering web applications.
Built on top of IoC and Wisp, BedSheet is concerned with providing a rich mechanism for the routing and delivery of content over HTTP.
- Install:
fanr install -r http://eggbox.fantomfactory.org/fanr afBedSheet
- User Guide: http://eggbox.fantomfactory.org/pods/afBedSheet/doc/
- Source: https://bitbucket.org/AlienFactory/afbedsheet
This new release of BedSheet doesn't add any more amazing new features (would that be possible!?) but it does groom and tidy what's already there. Here are a summary of changes:
Routes can takeany Response Object
Routing http requests to service methods is powerful, but often you just want simple things like:
- redirect one url to another, or
- return a bit of place holder text
So now Routes let you do this - by accepting any response object in the ctor. Should the Route be matched, the response object is returned for further processing.
Re-Jigged Err handling
Internally, the pipeline flow of Errs has changed. For starters, Errs are no longer converted into HttpStatus
500 objects for further processing (which was a bit eager).
ErrProcessors
now work in a similar fashion to HttpStatusProcessors
where BedSheet provides a (configurable) default if no other processor could be found.
These changes make it easier to set your own, custom, Err page. For now you only contribute an ErrProcessor
; you don't have to override one.
Service to render the default BedSheet pages
If you create your own Err page, sometimes it's still nice to render the default (verbose) BedSheet Err page; especially in a development environment. The addition of this service lets you do this.
Added dependency onIocEnv
Verbose Err pages are now only rendered in non-production environments, which necessitated the inclusion of this handy little utility library.
HttpRequestLogFilter included by default
That is, included, not enabled! You need to configure where the logs should be saved before it's enabled.
Logging HTTP requests is common practice and it shouldn't be difficult to set up. Having to manually add the logging filter to the HTTP Pipeline seemed a step too far... so now you don't!
Removed non-core functionality
Gone are the IE Cache Busting Ajax Filter
and the Cross Origin Resource Sharing (CORS) Handler
. (I'll blog about these if there's interest.)
Gone is the Route Matching service. This allowed you to contribute Objs other than Route
to the Routes
service. This largely existed to facilitate draft Routes but, given a Route
may now take any Response object, this extra layer of redirection is not needed. (Don't worry BedSheetDraft has been updated and still works with BedSheet 1.2!)
It's all about removing clutter from the API and ensuring BedSheet does what it does best - being the middleman for HTTP requests.
Groomed API Documentation
To make it easier for beginners to understand how to use each class / mixin / service.
Have fun!