[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
      end

      def grab
        ajax_upadate ...
      end
    end
  end

  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
    %{
    <ul>
      <li>navel</li>
      <li>nitro</li>
      <li>sexy</li>
    </ul>
    }
  end

  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' }
  end

  # the upload action

  def upload
    photo = Photo.assign(request)
    photo.save
  end

  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
  end

  class Project
    has_many :clients
  end

  class Client
  end

  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
  functionality.

* 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


--
http://www.nitrohq.com
http://www.gmosx.com
http://www.navel.gr




More information about the Nitro-general mailing list