Sunday 8 December 2013

Learn Ruby Language and Be an exploit coder-10

What Was That?


In Lesson 9 I threw you some new stuff, just to keep you on your toes. I showed you two ways to make a string that goes across multiple lines. In the first way, I put the characters \n (back-slash n) between the names of the months. What these two characters do is put a new line character into the string at that point.

This use of the \ (back-slash) character is a way we can put difficult-to-type characters into a string. There are plenty of these "escape sequences" available for different characters you might want to put in, but there's a special one, the double back-slash which is just two of them \\. These two characters will print just one back-slash. We'll try a few of these sequences so you can see what I mean.

Another important escape sequence is to escape a single-quote ' or double-quote ". Imagine you have a string that uses double-quotes and you want to put a double-quote in for the output. If you do this "I "understand" joe." then Ruby will get confused since it will think the " around "understand" actually ends the string. You need a way to tell Ruby that the " inside the string isn't a real double-quote.

To solve this problem you escape double-quotes and single-quotes so Ruby knows to include in the string. Here's an example:

"I am 6'2\" tall."  # escape double-quote inside string
'I am 6\'2" tall.'  # escape single-quote inside string
The second way is by using here document syntax, which uses <<NAME and works like a string, but you also can put as many lines of text you as want until you type NAME again. We'll also play with these.

  • tabby_cat = "\tI'm tabbed in."
  • persian_cat = "I'm split\non a line."
  • backslash_cat = "I'm \\ a \\ cat."
  • fat_cat = <<MY_HEREDOC
  • I'll do a list:
  • \t* Cat food
  • \t* Fishies
  • \t* Catnip\n\t* Grass
  • MY_HEREDOC
  • puts tabby_cat
  • puts persian_cat
  • puts backslash_cat
  • puts fat_cat


 What You Should See
Look for the tab characters that you made. In this exercise the spacing is important to get right.


  • $ ruby exploit10.rb
  •     I'm tabbed in.
  • I'm split
  • on a line.
  • I'm \ a \ cat.
  • I'll do a list:
  •     * Cat food
  •     * Fishies
  •     * Catnip
  •     * Grass
  • $

Extra Credit

Search online to see what other escape sequences are available.
Combine escape sequences and format strings to create a more complex format. 

No comments:

Post a Comment