Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
[QUIZ] Big Words (#204
Daniel Moore
5/8/2009 5:20:00 PM
[Note: parts of this message were removed to make it a legal post.]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The three rules of Ruby Quiz:
1. Please do not post any solutions or spoiler discussion for this
quiz until 48 hours have elapsed from the time this message was
sent.
2. Support Ruby Quiz by submitting ideas and responses
as often as you can!
Visit: <
http://rubyquiz...
/sugge...
3. Enjoy!
Suggestion: A [QUIZ] in the subject of emails about the problem
helps everyone on Ruby Talk follow the discussion. Please reply to
the original quiz message, if you can.
RSS Feed:
http://rubyquiz...
/q...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
## Big Words (#204)
Wassup Rubyists,
This weeks quiz was submitted by Alan.
Write a method that will return a large version of a string you provide it.
(Copy the output into a monospaced buffer for better viewing)
puts big_word('BIGWORD')
###### ####### ##### # # ##### ###### ######
# # # # # # # # # # # #
###### # # ### # # # # # ###### # #
# # # # # # # # # # # # # #
###### ####### ##### ## ## ##### # # ######
For extra credit you may include additional font styles, such as italic.
puts big_word('BIGWORD', 'i')
###### ####### ##### # # ##### ###### ######
# # # # # # # # # # # #
###### # # ### # # # # # ###### # #
# # # # # # # # # # # # # #
###### ####### ##### ## ## ##### # # ######
Have Fun!
--
-Daniel
http://rubyquiz...
2 Answers
Matthias Reitinger
5/15/2009 9:13:00 PM
0
Daniel Moore wrote:
> ## Big Words (#204)
This quiz immediately reminded me of FIGlet[1]. A reimplementation of
FIGlet in Ruby seemed to be a sensible way to solve this quiz, taking
into account the hundreds of fonts already available in the FIGlet format
(saving me from creating my own font). Fortunately I wasn't the first
one to have that idea: the "Text" gem[2] includes a Ruby implementation
of FIGlet! So I couldn't resist to do this:
#!/usr/bin/env ruby
require 'rubygems'
require 'text'
def big_word(str, fontfile='banner.flf')
font = Text::Figlet::Font.new(fontfile)
figlet = Text::Figlet::Typesetter.new(font)
figlet[str]
end
if __FILE__ == $0
while str = ARGV.shift
puts big_word(str)
end
end
Sample run:
reima@marvin:~/devel/ruby/quiz/204$ ./big_word.rb "Ruby Quiz"
###### #####
# # # # ##### # # # # # # # ######
# # # # # # # # # # # # # #
###### # # ##### # # # # # # #
# # # # # # # # # # # # # #
# # # # # # # # # # # # #
# # #### ##### # #### # #### # ######
The font file needed to run the script can be obtained from [3]. Or pick
any font from the font database[4] you fancy and change the file name in
the script.
-Matthias
[1]:
http://www.f...
[2]:
http://text.ruby...
[3]:
http://www.f...
fonts/banner.flf
[4]:
http://www.f...
fontdb.cgi
Daniel Moore
5/17/2009 5:40:00 PM
0
This week's quiz was solved by Matthias Reitinger. Let's check out the solution:
require 'rubygems'
require 'text'
def big_word(str, fontfile='banner.flf')
font = Text::Figlet::Font.new(fontfile)
figlet = Text::Figlet::Typesetter.new(font)
figlet[str]
end
Matthias uses the `Text` gem[1] to display fonts using the FIGlet[2]
format. The `big_word` method takes an optional font file parameter to
allow different styles. It operates by loading the file, creating a
FIGlet Typesetter from the font, and passing the input string to the
Typesetter. An easy to use and straightforward library.
There are a couple of prerequisites to use the program, though. You'll
need the `Text` gem and a font file[3]. I found that when installing
the gem, I needed to use the command `gem install Text`; the command
with lowercase `text` wouldn't work for me. Matthias also links to the
FIGlet font database[4] where there are some amazing fonts available.
In addition to FIGlet, the `Text` gem includes many other useful
libraries like Metaphone and Soundex. The Metaphone component of the
`Text` gem was used way back on Quiz #140[5] to sound out T-Shirts.
Thank you, Matthias, for sharing this useful library.
____ __ _____
/\ _`\ /\ \ /\ __`\ __
\ \ \L\ \ __ __\ \ \____ __ __ \ \ \/\ \ __ __/\_\ ____
\ \ , / /\ \/\ \ \ '__`\/\ \/\ \ \ \ \ \ \/\ \/\ \/\ \/\_ ,` \ \ \\ \\ \ \_\ \ \ \L\ \ \ \_\ \ \ \ \\'\\ \ \_\ \ \ \/_/ /_
\ \_\ \_\ \____/\ \_,__/\/`____ \ \ \___\_\ \____/\ \_\/\____ \/_/\/ /\/___/ \/___/ `/___/> \ \/__//_/\/___/ \/_/\/____/
/\___/
\/__/
[1]:
http://text.ruby...
[2]:
http://www.f...
[3]:
http://www.f...
fonts/banner.flf
[4]:
http://www.f...
fontdb.cgi
[5]:
http://rubyquiz.com/qu...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
[QUIZ] Big Words (#204
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password