[Nitro] Nitro + Og 0.27.0 Client code, WebFile, Elements improved, New examples RDocs

George Moschovitis george.moschovitis at gmail.com
Mon Jan 16 09:31:57 EST 2006

Dear devs,

new versions of Nitro and Og where just released

homepage: http://www.nitrohq.com
install: gem install nitro
download: http://rubyforge.org/projects/nitro/
irc: irc.freenode.net #nitro
mailing list: http://rubyforge.org/pipermail/nitro-general/

Whats new:

Once again we have a great mix of cool new features, along
with bugfixes and a myriad of smaller improvements. Go and
download the most advanced Ruby Web/ORM Framework you can find.

Most notable changes:

* Added groundbreaking client side action/scripting support:

  class FlickrDemo < Nitro::Controller
    helper :javascript

    class Client
      # Actions defined here are executed as javescript in the
      # browser.
      def clear_me
        hide :hide_me

      def grab
        ajax_upadate ...

  in the template:

  <div id="hide_me">...</div>
  <a client="clear_me">clear</a>

  the client element is converted to a javascript call that
  executes the code in the client action. A domain specific
  language is provided for the client action to implement stuff
  like ajax async updates, scriptaculous visual fx and more.

* A collection of morphers to work along with client actions.
  Here are some examples:

  <!-- make a div draggable -->
  <div id="hello" draggable="true">Drag me</div>

  <!-- autocomplete a text field -->
  <input type="text" name="tags" auto_complete="true" />

  in the controller:

  def tags_auto_complete

  More stuff is coming in future versions.

* Greatly imporoved the Elements system. The ElementMixin module
  is auto-injected if missing. Nitro automatically transforms
  xhtml template files in the Element.template_root into
  Element classes for even better separation of code and design.
  A simple Rails style layout helper is implememnted on top of
  the general and powerful Elements mechanism for people familiar
  with Rails.

* New WebFile system. Uploading files and handling photos was
  never easier:

  class Photo
    is Timestamped
    is Taggable
    property :title, String
    property :file, WebFile, :magick => { :small => '64x64', :medium
=> '128x128' }

  # the upload action

  def upload
    photo = Photo.assign(request)

  This saves the photo, and creates 2 thumbnails. You can easily
  access the photo and thumbnails like this:

  <img src="#{photo.file_medium_thumbnail}" />
  <img src="#{photo.file_small_thumbnail}" />

  ie obj.{propertyname}_#{thumbname}_thumbnail

* Og live collections support accumulation. Here is an example:

  class Category
    has_many :projects

  class Project
    has_many :clients

  class Client

  clients = category.projects.clients

  # => returns all clients for this category!

* Improved TableHelper, better configurability, more skinnable,
  sorting support and more.

* Added some intelligent auto-discovery features to minimize the
  setup code. For example helpers are automatically loaded, and
  the template_root is auto-discovered.

* Optimized the autoreloading system to only reload the dirty
  files. In fact the new autoreloading system is so efficient
  that it is enables by default even in live/production mode.

* Added Flickr, a great new example that shows off the new
  javascript integration and AJAX features of Nitro.

* Added Gallery example to demonstrate the new WebFile

* Improved the generated RDOC comments.

* Fixes in CGI adapter.

* Added evolution support to the KirbyBase adapter.

* Updated to scriptaculous 1.5.1

* Scaffolding - auto admin interface improvements.

* Added setup.rb for non-gem installation (experimental).

* Added ACGI adapter (experimental).

Nitro provides everything you need to develop professional Web
applications using Ruby and Javascript. Nitro redefines Rapid
Application Development by providing a clean, yet efficient API,
a layer of domain specific languages implemented on top of
Ruby and the most powerful and elegant object relational
mapping solution available everywhere.

have fun,
George Moschovitis


More information about the Nitro-general mailing list