Newbie html question

Hi,

I'm just starting to learn ruby and would like to know the best library to
use to create a static html page from a cron job. The page will contain the
results of a database query displayed as an html table. Some sort of
template package might be best. I already have dbi working to do the query.

Any advice would be appreciated.

Thanks,

cn

Simple onboard possibilities would be the cgi package (though that
needs some twists to use it as an emitter) or erb/eruby, a general
templating system.

regards,

Brian

···

On 28/10/05, Chris Newman <Chris.Newman@dalsemi.com> wrote:

Hi,

I'm just starting to learn ruby and would like to know the best library to
use to create a static html page from a cron job. The page will contain the
results of a database query displayed as an html table. Some sort of
template package might be best. I already have dbi working to do the query.

Any advice would be appreciated.

Thanks,

cn

--
http://ruby.brian-schroeder.de/

Stringed instrument chords: http://chordlist.brian-schroeder.de/

Hi,

I'm just starting to learn ruby and would like to know the best library to
use to create a static html page from a cron job. The page will contain the
results of a database query displayed as an html table. Some sort of
template package might be best. I already have dbi working to do the query.

Any advice would be appreciated.

Hey there-
     Here is an example of generating html with erb in the stdlib docs:

Ruby in HTML
ERB is often used in .rhtml files (HTML with embedded Ruby). Notice the need in this example to provide a special binding when the template is run, so that the instance variables in the Product object can be resolved.

   require "erb"

   # Build template data class.
   class Product
     def initialize( code, name, desc, cost )
       @code = code
       @name = name
       @desc = desc
       @cost = cost

       @features =
     end

     def add_feature( feature )
       @features << feature
     end

     # Support templating of member data.
     def get_binding
       binding
     end

     # ...
   end

   # Create template.
   template = %{
     <html>
       <head><title>Ruby Toys -- <%= @name %></title></head>
       <body>

         <h1><%= @name %> (<%= @code %>)</h1>
         <p><%= @desc %></p>

         <ul>
           <% @features.each do |f| %>
             <li><b><%= f %></b></li>
           <% end %>
         </ul>

         <p>
           <% if @cost < 10 %>
             <b>Only <%= @cost %>!!!</b>
           <% else %>
              Call for a price, today!
           <% end %>
         </p>

       </body>
     </html>
   }.gsub(/^ /, '')

   rhtml = ERB.new(template)

   # Set up template data.
   toy = Product.new( "TZ-1002",
                      "Rubysapien",
                      "Geek's Best Friend! Responds to Ruby commands...",
                      999.95 )
   toy.add_feature("Listens for verbal commands in the Ruby language!")
   toy.add_feature("Ignores Perl, Java, and all C variants.")
   toy.add_feature("Karate-Chop Action!!!")
   toy.add_feature("Matz signature on left leg.")
   toy.add_feature("Gem studded eyes... Rubies, of course!")

   # Produce result.
   rhtml.run(toy.get_binding)
Generates (some blank lines removed):

    <html>
      <head><title>Ruby Toys -- Rubysapien</title></head>
      <body>

        <h1>Rubysapien (TZ-1002)</h1>
        <p>Geek's Best Friend! Responds to Ruby commands...</p>

        <ul>
            <li><b>Listens for verbal commands in the Ruby language!</

</li>

            <li><b>Ignores Perl, Java, and all C variants.</b></li>
            <li><b>Karate-Chop Action!!!</b></li>
            <li><b>Matz signature on left leg.</b></li>
            <li><b>Gem studded eyes... Rubies, of course!</b></li>
        </ul>

        <p>
             Call for a price, today!
        </p>

      </body>
    </html>

Cheers-

-Ezra Zygmuntowicz
Yakima Herald-Republic
WebMaster

509-577-7732
ezra@yakima-herald.com

···

On Oct 28, 2005, at 5:14 AM, Chris Newman wrote: