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
--
http://ruby.brian-schroeder.de/
Stringed instrument chords: http://chordlist.brian-schroeder.de/
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!</
b></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
http://yakimaherald.com
509-577-7732
ez...@yakima-herald.com
-----Original Message-----
From: Brian Schröder [mailto:ruby....@gmail.com]
Sent: Friday, October 28, 2005 7:20 AM
To: ruby...@ruby-lang.org
Subject: Re: newbie html question
On 28/10/05, Chris Newman <Chris....@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.
>
-----Original Message-----
From: Ezra Zygmuntowicz [mailto:ez...@yakimaherald.com]
Sent: Friday, October 28, 2005 12:48 PM
To: ruby...@ruby-lang.org
Subject: Re: newbie html question
On Oct 28, 2005, at 5:14 AM, Chris Newman 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.
>
Hey there-