Nitro + Og 0.25.0 Og scope, dynamic finders, evolution, helpers, bug fixes

Dear devs,

I am pleased to announce new versions of Nitro and Og

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

What new

···

=======

This is the first in a series of releases focused on stability
and refinement. Many bugs where fixed, the high level api was
improved where needed, and we still got some small but incredibly
useful new features. Enjoy!

Most notable changes:

* Support for constrained / scoped queries in Og, here are
  some examples:

  User.with_scope(:condition => 'age > 2') {
    users = User.all
  }

  Users.articles.find "title LIKE %t%" # => constrain i users articles.

* Dynamic auto generators, you can now query the database in
  English:

  User.find_by_name_and_age('gmosx', 'age')
  User.find_or_create_by_name_and_age(...)

* Added experimental version of a new schema evolution system. Assuming
  evolve_schema = true and evolve_schema_cautious = false

  * With this patch, on application startup, fields are added and deleted.
  * During run-time, if the file containing Og.setup is touched,
fields are added.
  * Fields are _not_ deleted during run-time, only at application startup.

  a the moment this works only in the PostgreSQL store, support for more
  stores is coming in the next versions. Thanks to Rob Pitt and Bryan Sotto
  for this feature.

* Template morphing now handles nested elements, an example:

  <div if="@user.admin?">
    <ul>
      <li each="role in @user.roles" />
    </ul>
  </div>

* Added some useful helpers to make the code you write cleaner,
  here are some examples:

  class Article
    is Taggable

  instead of

  class Article
    include Og::Taggable

  or

  class MainController
    helper :pager, :javascript, :sitemap

  instead of

  class MainController
    include Nitro::PagerHelper
    include Nitro::JavascriptHelper
    ...

  and stuff like that...

* New, improved, clean taggable implementation. This new implementation
  supports polymorphism.

  class Article
    is Taggable
  end

  class Photo
    is Taggable
  end

  ...

  t = Tag.find_by_name('new')
  t.articles
  t.photos

* Added useful StaticInclude as a separate compiler module to act
  as the first stage in the compilation pipeline.

* Integrated latest versions of Prototype, Scriptaculous, KirbyBase
  and facets.

* General code cleanup and refactoring.

* Many, many bug fixes, including security fixes.

What is Nitro?

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.

Enjoy,
George Moschovitis

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

Heya George,

Congrats on the new version.

I've been looking around, is Nitro currently compatible with postres-pr (
the pure ruby postgres client library ) ???

I'm hopin' ... Let me know.

j.

···

On 11/17/05, George Moschovitis <george.moschovitis@gmail.com> wrote:

Dear devs,

I am pleased to announce new versions of Nitro and Og

homepage: http://www.nitrohq.com
download: http://rubyforge.org/projects/nitro/
mailing list: http://rubyforge.org/mailman/listinfo/nitro-general
irc: irc.freenode.net <http://irc.freenode.net> #nitro

What new

This is the first in a series of releases focused on stability
and refinement. Many bugs where fixed, the high level api was
improved where needed, and we still got some small but incredibly
useful new features. Enjoy!

Most notable changes:

* Support for constrained / scoped queries in Og, here are
some examples:

User.with_scope(:condition => 'age > 2') {
users = User.all
}

Users.articles.find "title LIKE %t%" # => constrain i users articles.

* Dynamic auto generators, you can now query the database in
English:

User.find_by_name_and_age('gmosx', 'age')
User.find_or_create_by_name_and_age(...)

* Added experimental version of a new schema evolution system. Assuming
evolve_schema = true and evolve_schema_cautious = false

* With this patch, on application startup, fields are added and deleted.
* During run-time, if the file containing Og.setup is touched,
fields are added.
* Fields are _not_ deleted during run-time, only at application startup.

a the moment this works only in the PostgreSQL store, support for more
stores is coming in the next versions. Thanks to Rob Pitt and Bryan Sotto
for this feature.

* Template morphing now handles nested elements, an example:

<div if="@user.admin?">
<ul>
<li each="role in @user.roles" />
</ul>
</div>

* Added some useful helpers to make the code you write cleaner,
here are some examples:

class Article
is Taggable

instead of

class Article
include Og::Taggable

or

class MainController
helper :pager, :javascript, :sitemap

instead of

class MainController
include Nitro::PagerHelper
include Nitro::JavascriptHelper
...

and stuff like that...

* New, improved, clean taggable implementation. This new implementation
supports polymorphism.

class Article
is Taggable
end

class Photo
is Taggable
end

...

t = Tag.find_by_name('new')
t.articles
t.photos

* Added useful StaticInclude as a separate compiler module to act
as the first stage in the compilation pipeline.

* Integrated latest versions of Prototype, Scriptaculous, KirbyBase
and facets.

* General code cleanup and refactoring.

* Many, many bug fixes, including security fixes.

What is Nitro?

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.

Enjoy,
George Moschovitis

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

--
"Remember. Understand. Believe. Yield! -> http://ruby-lang.org"

Jeff Wood

George Moschovitis wrote:

Dear devs,

I am pleased to announce new versions of Nitro and Og

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

Great news, George!

I've been looking forward to this.

James

···

--

http://www.ruby-doc.org - Ruby Help & Documentation
Ruby Code & Style - Ruby Code & Style: Writers wanted
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
http://www.30secondrule.com - Building Better Tools

uh, I meant Postgres-pr ... sorry for the typo.

j.

···

On 11/17/05, Jeff Wood <jeff.darklight@gmail.com> wrote:

Heya George,

Congrats on the new version.

I've been looking around, is Nitro currently compatible with postres-pr (
the pure ruby postgres client library ) ???

I'm hopin' ... Let me know.

j.

On 11/17/05, George Moschovitis <george.moschovitis@gmail.com> wrote:
>
> Dear devs,
>
> I am pleased to announce new versions of Nitro and Og
>
> homepage: http://www.nitrohq.com
> download: http://rubyforge.org/projects/nitro/
> mailing list: http://rubyforge.org/mailman/listinfo/nitro-general
> irc: irc.freenode.net <http://irc.freenode.net> #nitro
>
>
> What new
> =======
>
> This is the first in a series of releases focused on stability
> and refinement. Many bugs where fixed, the high level api was
> improved where needed, and we still got some small but incredibly
> useful new features. Enjoy!
>
> Most notable changes:
>
> * Support for constrained / scoped queries in Og, here are
> some examples:
>
> User.with_scope(:condition => 'age > 2') {
> users = User.all
> }
>
> Users.articles.find "title LIKE %t%" # => constrain i users articles.
>
> * Dynamic auto generators, you can now query the database in
> English:
>
> User.find_by_name_and_age('gmosx', 'age')
> User.find_or_create_by_name_and_age(...)
>
> * Added experimental version of a new schema evolution system. Assuming
> evolve_schema = true and evolve_schema_cautious = false
>
> * With this patch, on application startup, fields are added and deleted.
>
> * During run-time, if the file containing Og.setup is touched,
> fields are added.
> * Fields are _not_ deleted during run-time, only at application startup.
>
> a the moment this works only in the PostgreSQL store, support for more
> stores is coming in the next versions. Thanks to Rob Pitt and Bryan
> Sotto
> for this feature.
>
> * Template morphing now handles nested elements, an example:
>
> <div if="@user.admin?">
> <ul>
> <li each="role in @user.roles" />
> </ul>
> </div>
>
> * Added some useful helpers to make the code you write cleaner,
> here are some examples:
>
> class Article
> is Taggable
>
> instead of
>
> class Article
> include Og::Taggable
>
> or
>
> class MainController
> helper :pager, :javascript, :sitemap
>
> instead of
>
> class MainController
> include Nitro::PagerHelper
> include Nitro::JavascriptHelper
> ...
>
> and stuff like that...
>
> * New, improved, clean taggable implementation. This new implementation
> supports polymorphism.
>
> class Article
> is Taggable
> end
>
> class Photo
> is Taggable
> end
>
> ...
>
> t = Tag.find_by_name('new')
> t.articles
> t.photos
>
> * Added useful StaticInclude as a separate compiler module to act
> as the first stage in the compilation pipeline.
>
> * Integrated latest versions of Prototype, Scriptaculous, KirbyBase
> and facets.
>
> * General code cleanup and refactoring.
>
> * Many, many bug fixes, including security fixes.
>
>
> What is Nitro?
> ==========
>
> 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.
>
>
>
> Enjoy,
> George Moschovitis
>
>
> --
> http://www.gmosx.com
> http://www.navel.gr
> http://www.nitrohq.com
>
>

--
"Remember. Understand. Believe. Yield! -> http://ruby-lang.org "

Jeff Wood

--
"Remember. Understand. Believe. Yield! -> http://ruby-lang.org"

Jeff Wood

I've been looking around, is Nitro currently compatible with postres-pr (
the pure ruby postgres client library ) ???

Yes it is (though I haven't tested this lately...

-g.

···

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