Merb-0.4.0 released with new site merbivore.com
Posted by ezmobius Wed, 07 Nov 2007 01:55:00 GMT
We’ve been brewing up some serious merbal tea in the #merb kitchen over the past few months. With a lot of new contributions, refactorings and additional functionality this new release is definitely coming into its own.
In fact this release is stable and featureful enough to warrant its own new website. I introduce you to the new merbivore.com
I’d like to thank all the folks who have contributed patches and ideas. There are now 21 people with commit rights and many new ideas and techniques are getting explored. I have an open commit bit policy, submit a few good tested and doc’d patches and you get the commit bit. Then after that you just need to run any major changes by the team before committing.
There are numerous and sweeping changes in this release since 0.3.7. I’ll go through a few of them here and link to some blog posts for others.
- Merb is now ORM agnostic. There are official plugins for ActiveRecord, DataMapper and Sequel but merb itself comes out of the box with no ORM in case you’re using CouchDb or some other non relational data store.
- New testing/orm agnostic generators. You tell your app if you are using rspec or test/unit and which ORM and you can generate models and controllers and the right generator will be used based on how your app is set up. hassox wrote about it here: Agnostic Generators. Merb uses drnic’s rubigen for our generators now.
- New API for content negotiation. We think we’ve come up with a better API for serving different content types then the respond_to api in rails. Merb now uses the provides macro to declare what content types a controller or action will handle. Here is a new style merb crud controller that provides xml,js and yaml as well as html: provides api. michael Ivey came up with this gem of an api that covers the 90% case of skinny controller fat model REST controllers. It;s really nice once you grok how it works imho.
- Custom HTTP exceptions. All of your favorite http exceptions can be rendered in custom templates thru the Exceptions controller. You can raise BadRequest in a controller and Exceptions#bad_request will get called in the exceptions controller and r=do whatever logic and template rendering is needed for the exception thrown. All the http status codes are there and you can define your own as well.
- Parameterized Actions. Now with more ruby! Your controller actions can take arguments in their definitions and merb is smart enough to pass in the proper items out fo the params hash. Sam Smoot and Yehuda Katz are to blame for this awesome hack.
def index(id, search_string = "%")
@foo = Foo.find_with_search(id, search_string)
end
- Way too many other things to list here.
You can read a few nice posts about the new merb release here and here and here
If you feel like contributing or have questions then please come on down to the #merb irc change on irc.freenode.net and see what’s shaking. Or hit up the trac if you have issues: merb.devjavu.com
Big thanks to Luke Sutton and Steven Garcia for designing the new merbivore.com website! I think it looks hawt.
Searching...





Great stuff! Congratz with the 0.4 release.
This is great news. I've been on merb edge for a while and I think its a fantastic framework. Everyone should try merb!!
Congrats on the release!
Time to wake up that dormient merb project... congrats!
I dream with merb and rubinius on production in my projects. About the new site, put a bigger text size font. Best regards form Brazil
hey, Ezra, congrats on pushing out 0.4. I started following this ever since Ry pointed it out to me at this point (http://rubyforge.org/pipermail/merb-devel/2007-July/000141.html) Now I'm curious to know about what you want to put in this before it hits 1.0!
Cool, I'm going to give this a go on a personal project and see how I get on. I'd be interested to see some stats on memory usage between rails and merb. Out of curiosity, I noticed that you are using gems rather than a plugin system - how do you see it working when deploying to shared hosts and/or multiple apps that might be different versions?
Luke >> You can install gems in the gems directory of your app. Cool eh!
Dave >> Cheers for the reply, yeah that is cool. Definately going to give this a go!
Tutti i giochi del casino online vi sono proposti sui siti raccomandati dalla nostra famosa lista di casinĂ² virtuali.