Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > could someone explain this CGI problem ?

Reply
Thread Tools

could someone explain this CGI problem ?

 
 
lg
Guest
Posts: n/a
 
      01-03-2006
the following code sequence

cgi.div{
1..3.times{ |i|
cgi.div{
"hello from div"
}
}
}

produces

<DIV>
1..3
</DIV>

but i wanted to produce

<DIV>
<DIV>
huhu
</DIV>
<DIV>
huhu
</DIV>
<DIV>
huhu
</DIV>
</DIV>

could someone point me how to get the right result ?

 
Reply With Quote
 
 
 
 
dblack@wobblini.net
Guest
Posts: n/a
 
      01-03-2006
Hi --

On Tue, 3 Jan 2006, lg wrote:

> the following code sequence
>
> cgi.div{
> 1..3.times{ |i|
> cgi.div{
> "hello from div"
> }
> }
> }
>
> produces
>
> <DIV>
> 1..3
> </DIV>
>
> but i wanted to produce
>
> <DIV>
> <DIV>
> huhu
> </DIV>
> <DIV>
> huhu
> </DIV>
> <DIV>
> huhu
> </DIV>
> </DIV>
>
> could someone point me how to get the right result ?


1..3.times is being parsed as: 1..(3.times). Since times returns its
receiver, that's the same as: 1..3

Try this:

cgi.div {
(1..3).map {
cgi.div {
"hello from div" # or "huhu", or whatever
}
}
}

You could also do:

cgi.div { cgi.div { "hello from div" } * 3 }


David

--
David A. Black
http://www.velocityreviews.com/forums/(E-Mail Removed)

"Ruby for Rails", from Manning Publications, coming April 2006!
http://www.manning.com/books/black


 
Reply With Quote
 
 
 
 
Patrick Gundlach
Guest
Posts: n/a
 
      01-03-2006

> the following code sequence
>
> cgi.div{
> 1..3.times{ |i|
> cgi.div{
> "hello from div"
> }
> }
> }
>
> produces
>
> <DIV>
> 1..3
> </DIV>


This is, because the 1..3..... statement returns "1..3" and this is
what cgi gets. Try it with irb.

perhaps this works (untested)



> cgi.div{

temp_string=""
> 1..3.times{ |i|

temp_string << cgi.div{ "hello from div" }
> }

temp_string
> }


i.e. it collects the divs in a temporary string and gives that to the
outer div.

Patrick
 
Reply With Quote
 
John Maclean
Guest
Posts: n/a
 
      01-03-2006
Hey chaps,

I'd just like to check that the following uses methods and that no classes or instance variables are created. I see that there are no @instance_variables..
Where's the object? What class is being used?
Am I correct in saying that say_goodnight is a method, where (name) is the parameter for it?

#!/usr/bin/ruby
# Tue Dec 27 15:42:59 GMT 2005
# from page 13 of the pick-axe book
def say_goodnight(name)
"Good night, #{name.capitalize}"
# we use the output of the last result - this save time
end
# Time for bed...
puts say_goodnight('jayeola')
puts say_goodnight('john-Boy')
puts say_goodnight('mary-Ellen')
puts say_goodnight('mary-loo')
puts say_goodnight('silly-slapper')
puts say_goodnight('hex-editor')


--
John Maclean
MSc (DIC)
07739 171 531


 
Reply With Quote
 
lg
Guest
Posts: n/a
 
      01-03-2006
thanks - this was the hint i needed !

regards,

lars

 
Reply With Quote
 
Kero
Guest
Posts: n/a
 
      01-04-2006
> I'd just like to check that the following uses methods and that no classes
> or instance variables are created. I see that there are no
> @instance_variables..
>
> Where's the object?


try
ruby -e 'p self'
(as if executing a ruby file containing "p self" and nothing else)
it prints "main".
Apparently the object sees itself as main. ok.

> What class is being used?


do
ruby -e 'p self.class'
it prints "Object"
so main is an Object. tadaa!
(actually, it is a bit more than "just" an Object, but you can figure that
out yourself when you learn about Modules and mixin)

What should you learn from this? Everything is an object. Really. But if you
want to do some simple procedural stuff, the objects do not get in your way.
They can be, as you experienced, completely invisible. That's one of many,
many reasons I like Ruby so much


> Am I correct in saying that say_goodnight is a method, where (name) is the
> parameter for it?


absolutely correct

> #!/usr/bin/ruby
> # Tue Dec 27 15:42:59 GMT 2005
> # from page 13 of the pick-axe book
> def say_goodnight(name)
> "Good night, #{name.capitalize}"
> # we use the output of the last result - this save time
> end

[snip]
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
vlan speed issue, could someone explain gentouru Cisco 0 03-06-2008 01:54 AM
Could someone please explain?! jignasuk@gmail.com C++ 5 01-10-2006 10:43 PM
Could someone explain some code? Gactimus C++ 22 12-15-2004 07:41 PM
Could someone explain these registry items that ad-aware found? systemtool Computer Support 16 05-08-2004 09:45 PM
Could someone explain this to a newbie Sean Berry Python 3 04-28-2004 07:48 PM



Advertisments