<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Nanoware - Home</title>
  <id>tag:nanoware.com,2007:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.7.3">Mephisto Noh-Varr</generator>
  <link href="http://nanoware.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://nanoware.com/" rel="alternate" type="text/html"/>
  <updated>2007-03-13T00:18:38Z</updated>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2007-03-13:235</id>
    <published>2007-03-13T00:14:00Z</published>
    <updated>2007-03-13T00:18:38Z</updated>
    <category term="Projects"/>
    <category term="Roar"/>
    <link href="http://nanoware.com/2007/3/13/roar-mailing-list-wiki-and-future-plans" rel="alternate" type="text/html"/>
    <title>Roar mailing list, wiki and future plans</title>
<content type="html">
            &lt;p&gt;I am happy to see people starting to use roar in development.  As it is used, some great questions, ideas and problems have emerged.  To collect all these, I&#8217;ve added a &lt;a href=&quot;http://rubyforge.org/mail/?group_id=2958&quot;&gt;mailing list&lt;/a&gt; and set up a &lt;a href=&quot;http://wiki.nanoware.com/roar/&quot;&gt;wiki&lt;/a&gt;.   Please do visit these&#8212;contributions are most welcome!&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://rubyforge.org/mail/?group_id=2958&quot;&gt;http://rubyforge.org/mail/?group_id=2958&lt;/a&gt;&#8212;Mailing List&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://wiki.nanoware.com/roar/&quot;&gt;http://wiki.nanoware.com/roar/&lt;/a&gt;&#8212;Wiki&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I&#8217;ve also put what is on my radar in the &lt;a href=&quot;http://rubyforge.org/tracker/?atid=11427&#38;group_id=2958&#38;func=browse&quot;&gt;rubyforge tracker&lt;/a&gt;.  Please add any feature requests, patches or bug reports there.&lt;/p&gt;


	&lt;p&gt;Longer term, I see the future direction of roar moving more out of the automated admin interface game, and more into the generic interface game.  Basically, this would mean splitting the plugin into at least two parts&#8212;the core, and the admin interface templates.  I think for many applications, the layer provided by roar provides for some unique advantages. The indirection provided by roar core may add initial development effort to the first usage, but can dramatically speed up reapplication of the same pattern.  Plus, by sharing those contributions back to the community, everyone will benefit.  Similarly the emphasis could shift away from the admin interface as provided, to more of an emphasis on use contributed templates.  I would love to see an interface based on dojo/yui/jquery, or an interface that was designed by an actual designer.&lt;/p&gt;


	&lt;p&gt;However, those are just some of my thoughts, and are mostly just blue sky dreams right now.  Right now roar provides a useful featureset out of the box due to its evolution from the use cases that I needed to tackle. In the same way, roar will continue to evolve up and out (while maintaining as much simplicity as possible) based on your input and requirements.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2007-02-23:202</id>
    <published>2007-02-23T04:37:00Z</published>
    <updated>2007-02-24T00:14:50Z</updated>
    <category term="Projects"/>
    <category term="Roar"/>
    <link href="http://nanoware.com/2007/2/23/tumblelog-the-roar-demo" rel="alternate" type="text/html"/>
    <title>Tumblelog, the roar demo</title>
<summary type="html">&lt;p&gt;I wanted an app to showcase some of Roar&#8217;s capabilities, so I put up a &lt;a href=&quot;http://roardemo.nanoware.com&quot;&gt;tumblelog&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://roardemo.nanoware.com&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/tumblelog_frontend_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I wanted an app to showcase some of Roar&#8217;s capabilities, so I put up a &lt;a href=&quot;http://roardemo.nanoware.com&quot;&gt;tumblelog&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://roardemo.nanoware.com&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/tumblelog_frontend_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I wanted an app to showcase some of Roar&#8217;s capabilities, so I put up a &lt;a href=&quot;http://roardemo.nanoware.com&quot;&gt;tumblelog&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://roardemo.nanoware.com&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/tumblelog_frontend_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;One of the things it highlights is the ability to break out of the admin backend and easily edit resources in place.  If there&#8217;s interest, I might go into a more detailed walkthrough of building this app.  In the meantime, grab the source, check it out, and let me know if there are any questions.&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/tumblelog_backend.png&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Getting started:&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://rubyforge.org/frs/?group_id=2958&quot;&gt;Download from rubyforge&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Create a database (&lt;code&gt;mysqladmin create tumblelog_development&lt;/code&gt;), or edit database.yml to suit, run &lt;code&gt;rake db:migrate&lt;/code&gt;, and start the application with &lt;code&gt;ruby ./script/server&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I find it rather amusing that the day I put up a tumblelog as a technology demo, I find &lt;a href=&quot;http://tumblr.com&quot;&gt;tumblr&lt;/a&gt;, a pretty nifty (and free!) tumblelog provider.  If anyone is actually expecting that this tumblelog software will do anything useful&#8230; don&#8217;t!  If you want a tumblelog, go to &lt;a href=&quot;http://tumblr.com&quot;&gt;tumblr&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2007-02-23:201</id>
    <published>2007-02-23T03:40:00Z</published>
    <updated>2007-02-23T04:12:31Z</updated>
    <category term="Projects"/>
    <category term="Roar"/>
    <link href="http://nanoware.com/2007/2/23/roar-0-5-0-the-peter-gunn-edition" rel="alternate" type="text/html"/>
    <title>Roar 0.5, the Peter Gunn edition</title>
<summary type="html">&lt;p&gt;I was showing some of the cool new stuff in Roar to Bryan, and all he keeps saying is, &lt;em&gt;&#8220;You don&#8217;t believe in release early, release often, do you?&#8221;&lt;/em&gt;.  Guilty as charged&#8212;but I&#8217;ve been cooking up some pretty sweet things in the meantime.  This release inspired by &lt;a href=&quot;http://www.radioparadise.com/content.php?name=songinfo&#38;song_id=2585&quot;&gt;Peter Gunn, &lt;em&gt;Hellecasters&lt;/em&gt;&lt;/a&gt;   Here goes with a laundry list of some of the things that roar can now do that has me pretty excited: du du du du du du du du&#8230;&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/repeating_fields.png&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I was showing some of the cool new stuff in Roar to Bryan, and all he keeps saying is, &lt;em&gt;&#8220;You don&#8217;t believe in release early, release often, do you?&#8221;&lt;/em&gt;.  Guilty as charged&#8212;but I&#8217;ve been cooking up some pretty sweet things in the meantime.  This release inspired by &lt;a href=&quot;http://www.radioparadise.com/content.php?name=songinfo&#38;song_id=2585&quot;&gt;Peter Gunn, &lt;em&gt;Hellecasters&lt;/em&gt;&lt;/a&gt;   Here goes with a laundry list of some of the things that roar can now do that has me pretty excited: du du du du du du du du&#8230;&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/repeating_fields.png&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I was showing some of the cool new stuff in Roar to Bryan, and all he keeps saying is, &lt;em&gt;&#8220;You don&#8217;t believe in release early, release often, do you?&#8221;&lt;/em&gt;.  Guilty as charged&#8212;but I&#8217;ve been cooking up some pretty sweet things in the meantime.  This release inspired by &lt;a href=&quot;http://www.radioparadise.com/content.php?name=songinfo&#38;song_id=2585&quot;&gt;Peter Gunn, &lt;em&gt;Hellecasters&lt;/em&gt;&lt;/a&gt;   Here goes with a laundry list of some of the things that roar can now do that has me pretty excited: du du du du du du du du&#8230;&lt;/p&gt;


	&lt;h3&gt;How about door number 1, with dynamic repeating fields:&lt;/h3&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c&quot;&gt;# team.rb&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;Team&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ActiveRecord&lt;/span&gt;::&lt;span class=&quot;co&quot;&gt;Base&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  has_many &lt;span class=&quot;sy&quot;&gt;:players&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  has_many &lt;span class=&quot;sy&quot;&gt;:users&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:through&lt;/span&gt;=&amp;gt;&lt;span class=&quot;sy&quot;&gt;:players&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;c&quot;&gt;# TeamsController:&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_field &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_area &lt;span class=&quot;sy&quot;&gt;:description&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  select_field &lt;span class=&quot;sy&quot;&gt;:league_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt;=&amp;gt;&lt;span class=&quot;co&quot;&gt;League&lt;/span&gt;.to_select&lt;tt&gt;
&lt;/tt&gt;  has_many &lt;span class=&quot;sy&quot;&gt;:players&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;     auto_complete &lt;span class=&quot;sy&quot;&gt;:user&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;     check_box &lt;span class=&quot;sy&quot;&gt;:captain&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;     check_box &lt;span class=&quot;sy&quot;&gt;:admin&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;This produces repeating, nested forms on the collection, so you can edit the team and its players with one form.
The result:&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/repeating_fields.png&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;&#8220;Add Another&#8221; allows you to keep adding entries to the bottom of the form (via javascript).&lt;/p&gt;


	&lt;h3&gt;Or door number 2, with how do you want your roar?&lt;/h3&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c&quot;&gt;# routes.rb: The two lines are equivalent:&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;map.roar &lt;span class=&quot;sy&quot;&gt;:users&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;map.resources &lt;span class=&quot;sy&quot;&gt;:users&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:path_prefix&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;/admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;sy&quot;&gt;:name_prefix&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;roar_&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:member&lt;/span&gt; =&amp;gt; { &lt;span class=&quot;sy&quot;&gt;:delete&lt;/span&gt; =&amp;gt; &lt;span class=&quot;sy&quot;&gt;:get&lt;/span&gt; }&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;c&quot;&gt;# users_controller&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;roar &lt;span class=&quot;sy&quot;&gt;:prefix&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    edit &lt;span class=&quot;sy&quot;&gt;:login&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;  form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    text_field &lt;span class=&quot;sy&quot;&gt;:login&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;c&quot;&gt;# more fields&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;Then you can access the admin backend at /admin/users.  Using the domain to control routing still works with &lt;code&gt;roar :subdomain =&amp;gt; &quot;admin&quot; do&lt;/code&gt;.  Pick whatever makes the most sense, or&#8230;&lt;/p&gt;


	&lt;h3&gt;Door number 3, have your cake and eat it too&#8230;&lt;/h3&gt;


	&lt;p&gt;After going back into the public views, I started to miss the roar convenience.  I wanted to actually eat cake, so let there be cake!&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;PostsController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:prefix&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;c&quot;&gt;# Admin definition here&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;                &lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:view&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;     &lt;span class=&quot;c&quot;&gt;# public view here&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;   &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;h3&gt;It&#8217;s a big hallway: Table actions&lt;/h3&gt;


	&lt;p&gt;Define actions that happen to data as a collection:&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;table(&lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  action&lt;tt&gt;
&lt;/tt&gt;  edit &lt;span class=&quot;sy&quot;&gt;:description&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  boolean &lt;span class=&quot;sy&quot;&gt;:done&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  actions &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    done&lt;tt&gt;
&lt;/tt&gt;    undone &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Not Done&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    delete_checked &lt;span class=&quot;sy&quot;&gt;:confirm&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Delete all checked todos?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;Creates:&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/23/todolist.png&quot; /&gt;&lt;/p&gt;


	&lt;h3&gt;Multiple data views&lt;/h3&gt;


	&lt;p&gt;The above screenshot actually shows an alternate data view (data as a list).  Multiple views can be defined side by side, and switched between with the view url parameter.&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;table(&lt;span class=&quot;sy&quot;&gt;:view&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  action&lt;tt&gt;
&lt;/tt&gt;  edit &lt;span class=&quot;sy&quot;&gt;:description&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  boolean &lt;span class=&quot;sy&quot;&gt;:done&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  actions { sortable;   done;   undone &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Not Done&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;&lt;tt&gt;
&lt;/tt&gt;    delete_checked &lt;span class=&quot;sy&quot;&gt;:confirm&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Delete all checked todos?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  }&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;h3&gt;Sortable&lt;/h3&gt;


	&lt;p&gt;The list view can take a sortable action, for data that &lt;code&gt;acts_as_list&lt;/code&gt;.&lt;/p&gt;


	&lt;h3&gt;Separate new/edit forms:&lt;/h3&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;new_form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_field &lt;span class=&quot;sy&quot;&gt;:username&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_field &lt;span class=&quot;sy&quot;&gt;:password&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;edit_form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_field &lt;span class=&quot;sy&quot;&gt;:firstname&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_field &lt;span class=&quot;sy&quot;&gt;:lastname&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  text_area &lt;span class=&quot;sy&quot;&gt;:bio&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;Where to from here?&lt;/p&gt;


	&lt;p&gt;Roar is still in a constant state of flux, so there will be api changes, but the more feedback, the faster it&#8217;ll stabilize.  
Check it out at: &lt;a href=&quot;http://nanoware.com/roar&quot;&gt;http://nanoware.com/roar&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2007-02-02:191</id>
    <published>2007-02-02T19:27:00Z</published>
    <updated>2007-02-02T19:32:57Z</updated>
    <category term="Projects"/>
    <category term="Roar"/>
    <link href="http://nanoware.com/2007/2/2/roar-screenshots" rel="alternate" type="text/html"/>
    <title>Roar screenshots</title>
<summary type="html">&lt;p&gt;Here are some shots of the roar plugin in actions.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://nanoware.com/2007/2/2/roar-screenshots&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/news_list_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Here are some shots of the roar plugin in actions.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://nanoware.com/2007/2/2/roar-screenshots&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/news_list_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;News List&lt;/h3&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/news_list.png&quot; /&gt;&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;25&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;NewsController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:subdomain&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    order &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;posted_at DESC&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    filters &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      search &lt;span class=&quot;sy&quot;&gt;:text&lt;/span&gt;, [&lt;span class=&quot;sy&quot;&gt;:title&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:intro&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:body&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;sy&quot;&gt;:status&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt; =&amp;gt; &lt;span class=&quot;co&quot;&gt;News&lt;/span&gt;.status_options, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Status:&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      recent_dates &lt;span class=&quot;sy&quot;&gt;:posted_at&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      edit    &lt;span class=&quot;sy&quot;&gt;:title&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      date    &lt;span class=&quot;sy&quot;&gt;:posted_at&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:format&lt;/span&gt;=&amp;gt;&lt;span class=&quot;sy&quot;&gt;:short&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      inline_select &lt;span class=&quot;sy&quot;&gt;:status&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt; =&amp;gt; &lt;span class=&quot;co&quot;&gt;News&lt;/span&gt;.status_options&lt;tt&gt;
&lt;/tt&gt;      column  &lt;span class=&quot;sy&quot;&gt;:author&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      delete&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field    &lt;span class=&quot;sy&quot;&gt;:title&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_area     &lt;span class=&quot;sy&quot;&gt;:intro&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_area     &lt;span class=&quot;sy&quot;&gt;:body&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;sy&quot;&gt;:news_category_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt; =&amp;gt; &lt;span class=&quot;co&quot;&gt;NewsCategory&lt;/span&gt;.to_select, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt;=&amp;gt;&lt;span class=&quot;pc&quot;&gt;true&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;sy&quot;&gt;:status&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt; =&amp;gt; &lt;span class=&quot;co&quot;&gt;News&lt;/span&gt;.status_options, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt;=&amp;gt;&lt;span class=&quot;pc&quot;&gt;true&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;h3&gt;Edit Event&lt;/h3&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/edit_event.png&quot; /&gt;&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;25&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;EventsController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:subdomain&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    order &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;date DESC&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    per_page &lt;span class=&quot;i&quot;&gt;10&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    filters &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      search &lt;span class=&quot;sy&quot;&gt;:text&lt;/span&gt;, [&lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;,&lt;span class=&quot;sy&quot;&gt;:location&lt;/span&gt;,&lt;span class=&quot;sy&quot;&gt;:description&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt;      recent_dates &lt;span class=&quot;sy&quot;&gt;:date&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      edit &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      date &lt;span class=&quot;sy&quot;&gt;:date&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;sy&quot;&gt;:location&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      delete&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field &lt;span class=&quot;sy&quot;&gt;:location&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      datetime_select &lt;span class=&quot;sy&quot;&gt;:date&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_area &lt;span class=&quot;sy&quot;&gt;:description&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;h3&gt;Leagues and Divisions&lt;/h3&gt;


	&lt;p&gt;This shot illustrates nested resources, with inline editing&#8212;Divisions are nested within Leagues.&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/leagues.png&quot; /&gt;&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;25&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;27&lt;tt&gt;
&lt;/tt&gt;28&lt;tt&gt;
&lt;/tt&gt;29&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;31&lt;tt&gt;
&lt;/tt&gt;32&lt;tt&gt;
&lt;/tt&gt;33&lt;tt&gt;
&lt;/tt&gt;34&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;LeaguesController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:subdomain&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    order &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;year DESC&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    include &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;divisions&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      edit &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;sy&quot;&gt;:year&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;sy&quot;&gt;:season&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      has_many &lt;span class=&quot;sy&quot;&gt;:divisions&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:inline&lt;/span&gt;=&amp;gt;&lt;span class=&quot;pc&quot;&gt;true&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      delete&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;sy&quot;&gt;:season&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt; =&amp;gt; &lt;span class=&quot;co&quot;&gt;League&lt;/span&gt;.season_options, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt; =&amp;gt; &lt;span class=&quot;pc&quot;&gt;true&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;DivisionsController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:subdomain&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:parent&lt;/span&gt;=&amp;gt;&lt;span class=&quot;sy&quot;&gt;:league&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      edit &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      has_many &lt;span class=&quot;sy&quot;&gt;:games&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      has_many &lt;span class=&quot;sy&quot;&gt;:teams&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      delete&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;  &lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;h3&gt;New Game&lt;/h3&gt;


	&lt;p&gt;This shot illustrates the scoped select field in action.  Divisions are scoped to a League, and Teams are scoped to the Division.&lt;/p&gt;


	&lt;p&gt;This shot also illustrates the custom actions in place (:save_and_add_another).&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/new_game.png&quot; /&gt;&lt;/p&gt;


&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;25&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;27&lt;tt&gt;
&lt;/tt&gt;28&lt;tt&gt;
&lt;/tt&gt;29&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;31&lt;tt&gt;
&lt;/tt&gt;32&lt;tt&gt;
&lt;/tt&gt;33&lt;tt&gt;
&lt;/tt&gt;34&lt;tt&gt;
&lt;/tt&gt;35&lt;tt&gt;
&lt;/tt&gt;36&lt;tt&gt;
&lt;/tt&gt;37&lt;tt&gt;
&lt;/tt&gt;38&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;GamesController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;sy&quot;&gt;:subdomain&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;admin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    order &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;scheduled_at DESC&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    include [&lt;span class=&quot;sy&quot;&gt;:division&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:league&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:team1&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:team2&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;    filters &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;league_id&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt;=&amp;gt;&lt;span class=&quot;co&quot;&gt;League&lt;/span&gt;.to_select, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;League:&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      scoped_select_field &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;division_id&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:to&lt;/span&gt;=&amp;gt;&lt;span class=&quot;sy&quot;&gt;:league_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt;=&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Division:&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      edit(&lt;span class=&quot;sy&quot;&gt;:scheduled_at&lt;/span&gt;) { |date| date.to_s(&lt;span class=&quot;sy&quot;&gt;:short&lt;/span&gt;) }&lt;tt&gt;
&lt;/tt&gt;      column(&lt;span class=&quot;sy&quot;&gt;:division&lt;/span&gt;) { |div| &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;il&quot;&gt;&lt;span class=&quot;dl&quot;&gt;#{&lt;/span&gt;div.league.name&lt;span class=&quot;dl&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;il&quot;&gt;&lt;span class=&quot;dl&quot;&gt;#{&lt;/span&gt;div.name&lt;span class=&quot;dl&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; }&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;team1.name&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;team2.name&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;score1&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;score2&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column &lt;span class=&quot;sy&quot;&gt;:played&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      delete&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;    form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;sy&quot;&gt;:league_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt; =&amp;gt; &lt;span class=&quot;co&quot;&gt;League&lt;/span&gt;.to_select, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;League: &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      scoped_select_field &lt;span class=&quot;sy&quot;&gt;:division_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:to&lt;/span&gt; =&amp;gt; &lt;span class=&quot;sy&quot;&gt;:league_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Division: &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt; |league_id|&lt;tt&gt;
&lt;/tt&gt;        &lt;span class=&quot;co&quot;&gt;League&lt;/span&gt;.find(league_id).divisions.map { |div| [div.name, div.id] }&lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      scoped_select_field &lt;span class=&quot;sy&quot;&gt;:team1_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:source&lt;/span&gt; =&amp;gt; &lt;span class=&quot;sy&quot;&gt;:team&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:to&lt;/span&gt; =&amp;gt; &lt;span class=&quot;sy&quot;&gt;:division_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Team 1:&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt; |div_id|&lt;tt&gt;
&lt;/tt&gt;        &lt;span class=&quot;co&quot;&gt;Division&lt;/span&gt;.find(div_id).teams.map { |team| [team.name, team.id] }&lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      scoped_select_field &lt;span class=&quot;sy&quot;&gt;:team2_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:source&lt;/span&gt; =&amp;gt; &lt;span class=&quot;sy&quot;&gt;:team&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:to&lt;/span&gt; =&amp;gt; &lt;span class=&quot;sy&quot;&gt;:division_id&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:prompt&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Team 2:&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt; |div_id|&lt;tt&gt;
&lt;/tt&gt;        &lt;span class=&quot;co&quot;&gt;Division&lt;/span&gt;.find(div_id).teams.map { |team| [team.name, team.id] }&lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      datetime_select &lt;span class=&quot;sy&quot;&gt;:scheduled_at&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field &lt;span class=&quot;sy&quot;&gt;:duration&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      actions [&lt;span class=&quot;sy&quot;&gt;:save&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:save_and_add_another&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:delete&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2007-02-02:190</id>
    <published>2007-02-02T18:05:00Z</published>
    <updated>2007-02-02T18:07:05Z</updated>
    <category term="Projects"/>
    <category term="Roar"/>
    <link href="http://nanoware.com/2007/2/2/getting-started-with-roar" rel="alternate" type="text/html"/>
    <title>Getting started with Roar</title>
<summary type="html">&lt;p&gt;I recorded a short, introductory screencast, to getting started with Roar.  It takes you from creating a rails app, installing the plugin, to writing your first admin interface in under 5 minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://nanoware.com/2007/2/2/getting-started-with-roar&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/getting_started_screencast_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I recorded a short, introductory screencast, to getting started with Roar.  It takes you from creating a rails app, installing the plugin, to writing your first admin interface in under 5 minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://nanoware.com/2007/2/2/getting-started-with-roar&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/2/getting_started_screencast_500.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is an introductory screencast to getting started with Roar.  It takes you from creating a rails app, installing the plugin, to writing your first admin interface in under 5 minutes.&lt;/p&gt;

&amp;lt;object height=&quot;620&quot; codebase=&quot;http://www.apple.com/qtactivex/qtplugin.cab&quot; classid=&quot;clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B&quot; width=&quot;750&quot;&gt;
 &amp;lt;param name=&quot;src&quot; value=&quot;http://nanoware.com/assets/2007/2/2/roar_getting_started.mov&quot;&gt;
 &amp;lt;param name=&quot;controller&quot; value=&quot;true&quot;&gt;
 &amp;lt;param name=&quot;autoplay&quot; value=&quot;false&quot;&gt;
&amp;lt;!--[if !IE]&gt; &amp;lt;--&gt;
&amp;lt;object class=&quot;mov&quot; type=&quot;video/quicktime&quot; height=&quot;620&quot; width=&quot;750&quot; data=&quot;http://nanoware.com/assets/2007/2/2/roar_getting_started.mov&quot;&gt;
  &amp;lt;param name=&quot;autoplay&quot; value=&quot;false&quot;&gt;
  &amp;lt;param name=&quot;controller&quot; value=&quot;true&quot;&gt;
  You do not appear to have a compatible plugin installed. Try the Google Video link instead.
&amp;lt;/object&gt;
&amp;lt;!--&gt; &amp;lt;![endif]--&gt;
&amp;lt;/object&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2007-01-29:182</id>
    <published>2007-01-29T21:23:00Z</published>
    <updated>2007-02-01T22:22:59Z</updated>
    <category term="Projects"/>
    <category term="Roar"/>
    <link href="http://nanoware.com/2007/1/29/roar-is-coming" rel="alternate" type="text/html"/>
    <title>Roar is coming</title>
<content type="html">
            &lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;15&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;25&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cl&quot;&gt;PostsController&lt;/span&gt; &amp;lt; &lt;span class=&quot;co&quot;&gt;ApplicationController&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  roar &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;  &lt;tt&gt;
&lt;/tt&gt;    per_page &lt;span class=&quot;i&quot;&gt;5&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    order &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;published_at DESC, created_at&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;    filters &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      search &lt;span class=&quot;sy&quot;&gt;:text&lt;/span&gt;, [&lt;span class=&quot;sy&quot;&gt;:title&lt;/span&gt;,&lt;span class=&quot;sy&quot;&gt;:body&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt;      recent_dates &lt;span class=&quot;sy&quot;&gt;:created_at&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;    table &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      edit    &lt;span class=&quot;sy&quot;&gt;:title&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      column  &lt;span class=&quot;sy&quot;&gt;:status&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      date  &lt;span class=&quot;sy&quot;&gt;:published_at&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      delete&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;    form &lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_field &lt;span class=&quot;sy&quot;&gt;:title&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      text_area &lt;span class=&quot;sy&quot;&gt;:body&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      select_field &lt;span class=&quot;sy&quot;&gt;:status&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:choices&lt;/span&gt;=&amp;gt;&lt;span class=&quot;co&quot;&gt;Status&lt;/span&gt;.to_select&lt;tt&gt;
&lt;/tt&gt;      check_box &lt;span class=&quot;sy&quot;&gt;:published&lt;/span&gt;, &lt;span class=&quot;sy&quot;&gt;:name&lt;/span&gt;=&amp;gt;&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;Published?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2006-12-02:180</id>
    <published>2006-12-02T21:19:00Z</published>
    <updated>2007-02-01T22:24:06Z</updated>
    <link href="http://nanoware.com/2006/12/2/barcamp-ottawa-2" rel="alternate" type="text/html"/>
    <title>Barcamp Ottawa 2</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://barcamp.pbwiki.com/BarCampOttawa2&quot;&gt;&lt;img src=&quot;http://nanoware.com/assets/2007/2/1/barcamp_ottawa_homepage.jpg&quot; width=&quot;500px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://nanoware.com/">
    <author>
      <name>wayne</name>
    </author>
    <id>tag:nanoware.com,2006-12-02:179</id>
    <published>2006-12-02T21:18:00Z</published>
    <updated>2007-02-01T21:19:22Z</updated>
    <link href="http://nanoware.com/2006/12/2/coming-soon" rel="alternate" type="text/html"/>
    <title>Coming soon</title>
<content type="html">
            &lt;p&gt;Long gone are the animated gifs of the worker digging a hole, enter the under construction sign of the age of &lt;a href=&quot;http://creativecommons.org&quot;&gt;Creative Commons&lt;/a&gt;.  &lt;img src=&quot;http://nanoware.com/assets/2007/2/1/my_name_is_mud.jpg&quot; width=&quot;500px&quot; /&gt;
Photo by &lt;a href=&quot;http://flickr.com/photos/andidfl/305314252/&quot;&gt;Andreas Reinhold&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
</feed>
