[ANN] Nitro + Og 0.24.0, Annotations, KirbyBase, SCGI, Og Evolution, Gen, Dynamic CSS...

Discussion in 'Ruby' started by George Moschovitis, Oct 28, 2005.

  1. Dear devs,

    new versions of Nitro and Og were just released!

    homepage: http://www.nitrohq.com
    download: http://rubyforge.org/projects/nitro/
    mailing list: http://rubyforge.org/pipermail/nitro-general/

    --

    A snapshot of the latest developments. This version features
    tons of big and small features and bug fixes that were
    implemented during the last month. Special thanks fly to
    Tom, Chris, Guill, Rob, Aleksi, and all others that sent
    patches and code.

    Most notable additions:


    * Totaly recoded annotation / property system. The property
    system is now based on Facet annotations and inheritors.
    You can now annotate every object, attribute or method
    in Nitro. For example you can annotate your actions with
    routing rules or sitemap strings etc, etc. One unified
    system for annotations and metadata is used throughout
    the whole Framework.

    Here is an example:

    class A
    attr_accessor :val
    ann :val, :klass =3D> String
    ann :self, :doc =3D> 'Self annotation'
    end

    A.ann.val.class =3D> String
    A.ann.self.doc =3D>

    if A.ann.val[:class]

    etc, etc...

    * Implemented one of the most requested features. An Og
    frontend for KirbyBase. The KirbyBase store does not yet
    support all features, but is really useful. For example
    it can power the Spark wiki example. Switching between
    KirbyBase, Mysql, Postgres, Sqlite, etc by changing
    one line of code is really cool ;-)

    * Better Seperation of Concerns for Og managed classes. Og
    can now annotate and handle classes from other libraries.
    Lets say you have the following class:

    class User
    attr_accessor :name
    attr_accessor :body
    end

    Using Ruby's open classes and Nitro's advanced annotation
    system you can easily prepare this class for Og management

    class User
    ann :user, :klass =3D> String
    ann :body, :klass =3D> String
    end

    or even better:

    class User
    property :user, String
    property :body, String
    end

    This style promotes SOC: You define your classes in one
    place and annotate them for Og in another place.

    * Introduced a simple code generation framework. Two example
    generators are included:

    * app: generates the directory structure for a new
    nitro application.

    * form: generates an xhtml form for a Ruby class.
    This generator leverages the annotations of the
    object class.

    * Improved scaffolding code and django style auto
    administration system. The new scaffolder supports all
    Og relation types and provides an intuitive DHTML
    interface for editing.

    * SCGI (http://python.ca/nas/scgi/protocol.txt) support.
    Thanks to a refactoring of Nitro's cgi code this
    version integrates with Zed Shaw's SCGI adapter. This
    provides FastCGI's performance with an easy
    installation.

    * Experimental HTTP streaming support. Here is a
    simple example:

    def index
    response.content_type =3D "text/plain"
    stream do
    5.times do |i|
    print "#{i}"*10000 + "\n"
    sleep 1
    end
    end
    end

    * Simple Og automatic evolution system. Lets say you have a class Article

    class Article
    property :title, String
    property :nbody, String
    property :dumy, Fixnum
    end

    lets you want to change your
    class to this one:

    class NewArticle
    property :ntitle, String
    property :nbody, String
    property :new, Float
    end

    First you export the database:

    og.export

    Then you import the database. Some rules
    are needed when renaming classes or properties.
    New properties or deleted properties are handled
    automatically.

    rules =3D {
    :Article =3D> {
    :self =3D> :NewArticle, # rename the class
    :title =3D> :ntitle,
    :body =3D> :nbody
    }
    }
    og.import :evolution =3D> rules

    Thats all. In a future version this will be integrated into
    the default runner scripts.

    * Og helpers to create simple rdbms management scripts. Here
    is an example:

    mysql "-u root -p", <<-END
    drop database if exists weblog_development;
    create database weblog_development;
    grant all on weblog_development.* to #{`id -un`.strip}@localhost;
    END

    At the moment this is only available for Mysql.

    * Added support for dynamic CSS using Nitro's advanced templating
    system. Create the dynamic CSS file with an .csst extension in
    your template root.

    <?r
    green =3D '#79b500'
    background =3D '#fff'
    ?>

    .page {
    background: #{green}

    <?r 10.times do ?>
    padding: 5px;
    <?r end ?>

    // or even

    <% 3.times do %>
    margin: 5px;
    <% end %>
    }
    ..

    then, add this line in run.rb:

    Compiler.precompile 'style.css'

    The CSS file will be regenerated automatically whenever the
    template changes...

    * Updated to support latest Prototype, Scriptaculous etc.

    * Cleaned up Og implementation.

    * Fixed minor Ruby 1.8.3 compatibility issues.

    * Even better integration with Ruby Facets.

    * Tons of bug fixes and small but useful features.

    --

    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.

    Nitro is Web 2.0 ready, featuring excellent support for AJAX,
    XML, Syndication while staying standards compliant.

    Og (ObjectGraph) is a powerful and elegant object-relational mapping
    library. Og manages the lifecycle of Ruby objects and provides
    transparent serialization of object graphs to stores (typically
    RDBM systems).

    --

    enjoy,
    George Moschovitis


    --
    http://www.nitrohq.com
    http://www.navel.gr
     
    George Moschovitis, Oct 28, 2005
    #1
    1. Advertising

  2. George Moschovitis

    Trans Guest

    Re: Nitro + Og 0.24.0, Annotations, KirbyBase, SCGI, Og Evolution, Gen, Dynamic CSS...

    Congrats on getting the new release out. I know this one was a
    humdinger ;-)

    T.
     
    Trans, Oct 28, 2005
    #2
    1. Advertising

  3. George Moschovitis

    Zed A. Shaw Guest

    Re: [ANN] Nitro + Og 0.24.0, Annotations, KirbyBase, SCGI, OgEvolution, Gen, Dynamic CSS...

    Hey George,

    That's great you're using the SCGI stuff. Let me know how it works for
    you, and shoot me feedback on changes. Also, what version are you
    using?

    On Fri, 28 Oct 2005 16:55:13 +0900
    George Moschovitis <> wrote:
    <snip>
    > Dear devs,
    > * SCGI (http://python.ca/nas/scgi/protocol.txt) support.
    > Thanks to a refactoring of Nitro's cgi code this
    > version integrates with Zed Shaw's SCGI adapter. This
    > provides FastCGI's performance with an easy
    > installation.

    </snip>
     
    Zed A. Shaw, Oct 29, 2005
    #3
  4. I use a slightly older version of your code. Will update to the latest
    now that 0.24.0 is out.
    Moreover, I plan to send you some general suggestions about your great
    adapter, stay tuned.

    regards,
    George.


    On 10/29/05, Zed A. Shaw <> wrote:
    > Hey George,
    >
    > That's great you're using the SCGI stuff. Let me know how it works for
    > you, and shoot me feedback on changes. Also, what version are you
    > using?
    >
    > On Fri, 28 Oct 2005 16:55:13 +0900
    > George Moschovitis <> wrote:
    > <snip>
    > > Dear devs,
    > > * SCGI (http://python.ca/nas/scgi/protocol.txt) support.
    > > Thanks to a refactoring of Nitro's cgi code this
    > > version integrates with Zed Shaw's SCGI adapter. This
    > > provides FastCGI's performance with an easy
    > > installation.

    > </snip>
    >
    >



    --
    http://www.gmosx.com
    http://www.navel.gr
    http://www.nitrohq.com
     
    George Moschovitis, Oct 29, 2005
    #4
  5. George Moschovitis

    Guest

    , Oct 30, 2005
    #5
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ilias Lazaridis
    Replies:
    7
    Views:
    98
    Ilias Lazaridis
    May 8, 2005
  2. Zed A. Shaw

    [ANN] Ruby/Event (Myriad and SCGI)

    Zed A. Shaw, Jul 26, 2005, in forum: Ruby
    Replies:
    2
    Views:
    129
    Zed A. Shaw
    Jul 26, 2005
  3. Zed A. Shaw
    Replies:
    1
    Views:
    152
    Zed A. Shaw
    Oct 17, 2005
  4. George Moschovitis
    Replies:
    4
    Views:
    131
    James Britt
    Nov 17, 2005
  5. gabriele renzi

    [Nitro] [ANN] Nitro/Og 0.31.0

    gabriele renzi, Jul 24, 2006, in forum: Ruby
    Replies:
    22
    Views:
    393
    George Moschovitis
    Aug 1, 2006
Loading...

Share This Page