My first Ruby programming question :-)

Thread Solved

Join Date: Jul 2006
Posts: 174
Reputation: tefflox is an unknown quantity at this point 
Solved Threads: 1
tefflox's Avatar
tefflox tefflox is offline Offline
Junior Poster

My first Ruby programming question :-)

 
0
  #1
Dec 26th, 2007
Hello, I'm pleased to be here by way of the html forum. I've been using php for static pages for 18 months. I wanted to learn rails, but I just realized that I could configure my host to automate index.rhtml files just like php. This is a major motivator for me to learn Ruby, and after a few more months I can start fresh with Rails. OK, here is the code that works in PHP, and what I've got so far in Ruby. The JS effect can be viewed here: http://listenlight.net/13 ---

  1. <?php
  2.  
  3. $i = 0; $n = 0;
  4.  
  5. $str = "listenlightpoetryjournal";
  6.  
  7. while( $str[$i] != "" ) {
  8. echo("<span id=\"n".$n++."\" style=\"position:relative; visibility: hidden; font-size: normal; top:".(rand(-18, 18))."px; color: black;\">".$str[$i]."</span>");
  9.  
  10. $i++;
  11. }
  12.  
  13.  
  14. ?>

  1. <%
  2. def banner
  3. str = "listenlightpoetryjournal"
  4. i, n = 0, 0
  5. until c = str[i] == nil
  6. line = "<span id=\"n", n, "\" style=\"position: relative; font-size: normal; top:", rand(36) - 18, "px;\">", c, "</span>"
  7. i += 1
  8. n += 1
  9. output = output, line
  10. end
  11. end
  12. %>
  13.  
  14. <%= banner %>

In the Ruby example, I've set the visibility attribute in the CSS, attempting to clean the markup. Also, is there a way to do a parallel incrementing?--such as a, b += 1, 1 (?)
Reply With Quote Quick reply to this message  
Join Date: Jul 2006
Posts: 174
Reputation: tefflox is an unknown quantity at this point 
Solved Threads: 1
tefflox's Avatar
tefflox tefflox is offline Offline
Junior Poster

Re: My first Ruby programming question :-)

 
0
  #2
Dec 26th, 2007
My solution ---

  1. <%=
  2. def banner
  3. i, n, span, str = 0, 0, String.new, "listenlightpoetryjournal"
  4. until i == str.length do
  5. span << "<span id=\"n" << n.to_s << "\" style=\"top: "
  6. << (rand(36) - 18).to_s << "px;\">" << str[i] << "</span>"
  7. i, n = i + 1, n + 1
  8. end
  9. return span
  10. end
  11. banner
  12. %>

No more PHP for this one.
Reply With Quote Quick reply to this message  
Join Date: Oct 2005
Posts: 521
Reputation: pty is on a distinguished road 
Solved Threads: 37
pty's Avatar
pty pty is offline Offline
Posting Pro

Re: My first Ruby programming question :-)

 
0
  #3
Dec 29th, 2007
Originally Posted by tefflox View Post
My solution ---

  1. <%=
  2. def banner
  3. i, n, span, str = 0, 0, String.new, "listenlightpoetryjournal"
  4. until i == str.length do
  5. span << "<span id=\"n" << n.to_s << "\" style=\"top: "
  6. << (rand(36) - 18).to_s << "px;\">" << str[i] << "</span>"
  7. i, n = i + 1, n + 1
  8. end
  9. return span
  10. end
  11. banner
  12. %>

No more PHP for this one.
Although your solution is fine it can be a little more readable (and re-usable) in rails.

In the controller:

  1. def banner(text)
  2. span = String.new
  3. text.split(//).each_with_index do |c, i|
  4. span += "<span id='#{i}' style='top:#{(rand(36)-18)}px;'>#{c}</span>\n"
  5. end
  6. span
  7. end

Then in the view

  1. <%= banner("listenlightpoetryjournal") %>
Note to self... pocket cup
Reply With Quote Quick reply to this message  
Join Date: Jan 2005
Posts: 3
Reputation: eruder is an unknown quantity at this point 
Solved Threads: 1
eruder eruder is offline Offline
Newbie Poster

Re: My first Ruby programming question :-)

 
0
  #4
Jan 1st, 2008
pty's improvement is a good one!

The only nit I have with it is that I wouldn't put the banner method in the controller, since it has nothing to do with the "traffic cop" jobs that controllers normally do. I would put it in a helper file, either this controller's helper file or the application_helper.rb file (if it's a method you'd want to use in other controllers).

Ed
Reply With Quote Quick reply to this message  
Join Date: Jul 2006
Posts: 174
Reputation: tefflox is an unknown quantity at this point 
Solved Threads: 1
tefflox's Avatar
tefflox tefflox is offline Offline
Junior Poster

Re: My first Ruby programming question :-)

 
0
  #5
Jan 1st, 2008
thanks. i appreciate the direction on working with strings, but it's only for static pages. i'm not using the rails framework. i just wanted to make it concise.
Reply With Quote Quick reply to this message  
Join Date: Oct 2005
Posts: 521
Reputation: pty is on a distinguished road 
Solved Threads: 37
pty's Avatar
pty pty is offline Offline
Posting Pro

Re: My first Ruby programming question :-)

 
0
  #6
Jan 2nd, 2008
Originally Posted by eruder View Post
pty's improvement is a good one!

The only nit I have with it is that I wouldn't put the banner method in the controller, since it has nothing to do with the "traffic cop" jobs that controllers normally do. I would put it in a helper file, either this controller's helper file or the application_helper.rb file (if it's a method you'd want to use in other controllers).

Ed
Thanks Ed
Note to self... pocket cup
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the Ruby Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC