[ANN] Rails 0.10.0: Routing, Web Services, Components, Oracle

  • Thread starter David Heinemeier Hansson
  • Start date
D

David Heinemeier Hansson

We're plowing through the road map at lightning speed with the release
of Rails 0.10.0. There's so much good stuff in here this time it's
really hard to pick just a few bits to focus on for the overview, but
still I have. With Rails 0.10.0, you'll get:

* *Routing*: Pretty URLs of all flavors and fashions can now be
specified using an easy to understand Routing syntax made in Ruby. This
means no more wrestling with mod_rewrite in Apache to get custom URL
schemes. It means you're not bound to the traditional
/controller/action/id form (the controller and action names don't even
have to be part of the URL!). It also means that the URL parsing and
generation is handled by the same configuration, which removes all the
labor previously involved in getting your Ruby code to sync with your
rewrite rules. That makes it possible to share the same URL
configuration across all the web servers supported by Rails. You can
seemlessly develop your application on WEBrick and without changes move
it to Apache or lighttpd. Read more in the Routing book
[http://manuals.rubyonrails.com/read/book/9], see a bunch of routes
explained [http://scott.elitists.net/view/17], or dig into the
ActionController::Base#url_for
[http://ap.rubyonrails.com/classes/ActionController/Base.html#M000071]
API documentation.

* *Web Services*: Action Web Service [http://aws.rubyonrails.com/] is a
whole new add-on framework for Action Pack that enables SOAP with WSDL
and XML-RPC web services to be made with Rails ease. You can either
describe an existing controller with an API, and let the clients
interact with the same methods used to do the HTTP interface, or you
can create dedicated service classes that can be bound to a controller.
In addition to the support for building web services, we've also added
convenient wrappers for calling other web services from your
application. For getting started, there's a whole book on Action Web
Service [http://manuals.rubyonrails.com/read/book/10] that explains how
to define, implement, and interact with the web serivce APIs. We also
got examples using the GoogleSearch API
[http://dev.rubyonrails.com/browser/trunk/actionwebservice/examples/
googlesearch/] and the metaWeblogApi
[http://dev.rubyonrails.com/browser/trunk/actionwebservice/examples/
metaWeblog/.

* *Components*: With components it's possible to call other actions and
controllers for their rendered response while executing another action.
You can either delegate the entire response rendering or you can mix a
partial response in with your other content. This makes it possible to
package functionality in reusable parts and to keep more DRY on
application elements that integrate from many sources (like a
dashboard). To learn more about components, we have another book
[http://manuals.rubyonrails.com/read/book/14], a video showing how to
make and call components
[http://rubyonrails.org/media/video/clips/components.mov], and the API
docs
http://ap.rubyonrails.com/classes/ActionController/Components.html.

* *Oracle*: In addition to the existing adapters for MySQL, PostgreSQL,
SQLite, SQL Server, and DB2, we now also support Oracle as a database
option for Active Record. The adapter that made it in is built on top
of OCI8 and has been confirmed to work great with Oracle 8i and 9i. Our
sixth database adapter is documented in the API
[http://ar.rubyonrails.com/classes/ActiveRecord/ConnectionAdapters/
OCIAdapter.html].

But there's a world of additional new and fixed stuff in 0.10.0. See
the other whole new package Active Support [http://as.rubyonrails.com/]
and check the changelogs:

* Active Record: http://ar.rubyonrails.com/files/CHANGELOG.html
* Action Pack : http://ap.rubyonrails.com/files/CHANGELOG.html
* Action Mailer: http://am.rubyonrails.com/files/CHANGELOG.html
* Rails : http://rails.rubyonrails.com/files/CHANGELOG.html


Honoring Nicholas Seckar and Leon Breedt
----------------------------------------

The two most important features in this release has been contributed to
two relative newcomers to the Rails scene. Nicholas Seckar tried at
least three attempts at Routing before we found the one that felt like
the best Rails fit. He put an enormous amount of energy into sorting
out all the complications and have since helped to improve all parts of
Rails. You've done a superb job, Nicholas. May potential employeers
looking for talent see your name.

Equal thanks goes to Leon Breedt that popped out of nowhere with a
whole new framework that followed our established conventions and
approach to the dot. The quality of the code and documentation has made
a big impression on the existing team of core contributors. And the
work has contributed to make us all the much closer to 1.0. Thanks for
the excellent work, Leon!


So how far away is Rails 1.0?
-----------------------------

Rails 1.0 moved much closer today as we knocked off well over half of
the previously announced <a
href="http://weblog.rubyonrails.com/archives/2005/01/06/road-map-the-
rails-leading-to-10/">road map</a>. What we primarily lack now is
Packaging and Performance alongside the aim to bring the number of
uninvestigated and/or fixed <a
href="http://dev.rubyonrails.com/report/1">fault tickets</a> down to
zero. The current tentative date is end of March/start of April.


Upgrading from Rails 0.9.5 to 0.10.0
------------------------------------

If you don't have any custom URLs defined in your existing application,
then it's a fairly straight forward process to upgrade. If you do have
custom URLs, it's a bit more work, but definitely manageable. Basecamp
used a lot of custom URL tricks and it took me under an hour and
resulted in 100 lines of code being stripped from the application. In
any case, we've created a book to guide the upgrade process
[http://manuals.rubyonrails.com/read/book/15].
 
S

Scott Barron

We're plowing through the road map at lightning speed with the release
of Rails 0.10.0. There's so much good stuff in here this time it's
really hard to pick just a few bits to focus on for the overview, but
still I have. With Rails 0.10.0, you'll get:

* *Routing*: Pretty URLs of all flavors and fashions can now be
specified using an easy to understand Routing syntax made in Ruby. This
means no more wrestling with mod_rewrite in Apache to get custom URL
schemes. It means you're not bound to the traditional
/controller/action/id form (the controller and action names don't even
have to be part of the URL!). It also means that the URL parsing and
generation is handled by the same configuration, which removes all the
labor previously involved in getting your Ruby code to sync with your
rewrite rules. That makes it possible to share the same URL
configuration across all the web servers supported by Rails. You can
seemlessly develop your application on WEBrick and without changes move
it to Apache or lighttpd. Read more in the Routing book
[http://manuals.rubyonrails.com/read/book/9], see a bunch of routes
explained [http://scott.elitists.net/view/17], or dig into the
ActionController::Base#url_for
[http://ap.rubyonrails.com/classes/ActionController/Base.html#M000071]
API documentation.

I noted this on the Rails list, and I should probably note it here
too. The URL http://scott.elitists.net/view/17 is no longer valid
because I upgraded my journal to use the new Routes in Rails 0.10.0 :)

The link for that resource is:
http://scott.elitists.net/scott/elite-journals-new-routes/view

If you're following my Rails walk through, the tag URLs have also
changed a bit, you can pick it up here:
http://scott.elitists.net/tag/rails+walkthrough

Thank you and sorry for any inconvenience!
-Scott
 
S

Shalev NessAiver

Well, it seems like version 0.10 still has some bugs to work out. I
keep being confronted with various error pages as I try to browse the
new content. Components sound really cool and are something I've
really been waiting for. Keep up the great work~!

-Shalev


We're plowing through the road map at lightning speed with the release
of Rails 0.10.0. There's so much good stuff in here this time it's
really hard to pick just a few bits to focus on for the overview, but
still I have. With Rails 0.10.0, you'll get:

* *Routing*: Pretty URLs of all flavors and fashions can now be
specified using an easy to understand Routing syntax made in Ruby.
This means no more wrestling with mod_rewrite in Apache to get custom
URL schemes. It means you're not bound to the traditional
/controller/action/id form (the controller and action names don't even
have to be part of the URL!). It also means that the URL parsing and
generation is handled by the same configuration, which removes all the
labor previously involved in getting your Ruby code to sync with your
rewrite rules. That makes it possible to share the same URL
configuration across all the web servers supported by Rails. You can
seemlessly develop your application on WEBrick and without changes
move it to Apache or lighttpd. Read more in the Routing book
[http://manuals.rubyonrails.com/read/book/9], see a bunch of routes
explained [http://scott.elitists.net/view/17], or dig into the
ActionController::Base#url_for
[http://ap.rubyonrails.com/classes/ActionController/Base.html#M000071]
API documentation.

* *Web Services*: Action Web Service [http://aws.rubyonrails.com/] is
a whole new add-on framework for Action Pack that enables SOAP with
WSDL and XML-RPC web services to be made with Rails ease. You can
either describe an existing controller with an API, and let the
clients interact with the same methods used to do the HTTP interface,
or you can create dedicated service classes that can be bound to a
controller. In addition to the support for building web services,
we've also added convenient wrappers for calling other web services
from your application. For getting started, there's a whole book on
Action Web Service [http://manuals.rubyonrails.com/read/book/10] that
explains how to define, implement, and interact with the web serivce
APIs. We also got examples using the GoogleSearch API
[http://dev.rubyonrails.com/browser/trunk/actionwebservice/examples/
googlesearch/] and the metaWeblogApi
[http://dev.rubyonrails.com/browser/trunk/actionwebservice/examples/
metaWeblog/.

* *Components*: With components it's possible to call other actions
and controllers for their rendered response while executing another
action. You can either delegate the entire response rendering or you
can mix a partial response in with your other content. This makes it
possible to package functionality in reusable parts and to keep more
DRY on application elements that integrate from many sources (like a
dashboard). To learn more about components, we have another book
[http://manuals.rubyonrails.com/read/book/14], a video showing how to
make and call components
[http://rubyonrails.org/media/video/clips/components.mov], and the API
docs
http://ap.rubyonrails.com/classes/ActionController/Components.html.

* *Oracle*: In addition to the existing adapters for MySQL,
PostgreSQL, SQLite, SQL Server, and DB2, we now also support Oracle as
a database option for Active Record. The adapter that made it in is
built on top of OCI8 and has been confirmed to work great with Oracle
8i and 9i. Our sixth database adapter is documented in the API
[http://ar.rubyonrails.com/classes/ActiveRecord/ConnectionAdapters/
OCIAdapter.html].

But there's a world of additional new and fixed stuff in 0.10.0. See
the other whole new package Active Support
[http://as.rubyonrails.com/] and check the changelogs:

* Active Record: http://ar.rubyonrails.com/files/CHANGELOG.html
* Action Pack : http://ap.rubyonrails.com/files/CHANGELOG.html
* Action Mailer: http://am.rubyonrails.com/files/CHANGELOG.html
* Rails : http://rails.rubyonrails.com/files/CHANGELOG.html


Honoring Nicholas Seckar and Leon Breedt
----------------------------------------

The two most important features in this release has been contributed
to two relative newcomers to the Rails scene. Nicholas Seckar tried at
least three attempts at Routing before we found the one that felt like
the best Rails fit. He put an enormous amount of energy into sorting
out all the complications and have since helped to improve all parts
of Rails. You've done a superb job, Nicholas. May potential employeers
looking for talent see your name.

Equal thanks goes to Leon Breedt that popped out of nowhere with a
whole new framework that followed our established conventions and
approach to the dot. The quality of the code and documentation has
made a big impression on the existing team of core contributors. And
the work has contributed to make us all the much closer to 1.0.
Thanks for the excellent work, Leon!


So how far away is Rails 1.0?
-----------------------------

Rails 1.0 moved much closer today as we knocked off well over half of
the previously announced <a
href="http://weblog.rubyonrails.com/archives/2005/01/06/road-map-the-
rails-leading-to-10/">road map</a>. What we primarily lack now is
Packaging and Performance alongside the aim to bring the number of
uninvestigated and/or fixed <a
href="http://dev.rubyonrails.com/report/1">fault tickets</a> down to
zero. The current tentative date is end of March/start of April.


Upgrading from Rails 0.9.5 to 0.10.0
------------------------------------

If you don't have any custom URLs defined in your existing
application, then it's a fairly straight forward process to upgrade.
If you do have custom URLs, it's a bit more work, but definitely
manageable. Basecamp used a lot of custom URL tricks and it took me
under an hour and resulted in 100 lines of code being stripped from
the application. In any case, we've created a book to guide the
upgrade process [http://manuals.rubyonrails.com/read/book/15].
 
D

David Heinemeier Hansson

Well, it seems like version 0.10 still has some bugs to work out. I
keep being confronted with various error pages as I try to browse the
new content. Components sound really cool and are something I've
really been waiting for. Keep up the great work~!

This is not a Rails issue, but an issue with the database on the web
server rubyonrails.com is currently hosted on. We're working to resolve
that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top