I've been updating some of my Ruby examples today (as one does on a Saturday!) and I thought back to the post I made yesteday concerning 1st, 2nd, 3rd, etc in Python.
Ruby has a case statement, even though Ruby is a bit of a cross between Python and Perl, neither of which supports the structure. Historically, it's been difficult for language authors to come up with a really good multiple way switch but actually the Ruby one is rather smart. Compare this Ruby to the Python code I wrote yesterday:
case value
when 1,21,31
suffix = "st"
when 2,22
suffix = "nd"
when 3,23
suffix = "rd"
else
suffix = "th"
end
puts "It is the #{value}#{suffix} of the month"
Oh - I'm revising this for the
public Ruby course that's running on 14th and 15th December ... places still available at £550.00 (first delegate) and £440.00 (second and subsequent delegate on same running of the course / same order. Maximum of 7 delegates taken, and just 3 rooms available as I write, Hurry hurry hurry!!
(written 2006-12-02, updated 2006-12-04)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
R104 - Ruby - Control Structures [962] Breaking a loop - Ruby and other languages - (2006-12-03)
[985] Equality in Ruby - == eql? and equal? - (2006-12-14)
[995] Ruby's case - no break - (2006-12-17)
[1163] A better alternative to cutting and pasting code - (2007-04-26)
[1220] for loop - how it works (Perl, PHP, Java, C, etc) - (2007-06-06)
[1582] Ruby, C, Java and more - getting out of loops - (2008-03-19)
[1587] Some Ruby programming examples from our course - (2008-03-21)
[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
[1738] Clean code, jump free (Example in Lua) - (2008-08-06)
[1870] What to do with a huge crop of apples - (2008-11-04)
[1887] Ruby Programming Course - Saturday and Sunday - (2008-11-16)
[1891] Ruby to access web services - (2008-11-16)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2287] Learning to program in Ruby - examples of the programming basics - (2009-07-15)
[2471] A short form of if ... then ... else - (2009-10-23)
[2619] Passing code to procedures and yield in Ruby - (2010-02-02)
[2711] For loop - checked once, or evety time? Ruby v Perl comparison and contrast - (2010-04-07)
[2892] Alternative loops and conditionals in Ruby and Perl - (2010-07-28)
[2975] Why do I need brackets in Ruby ... or Perl, Python, C or Java - (2010-09-29)
[3156] Splitting data reading code from data processing code - Ruby - (2011-02-04)
[3158] Ruby training - some fresh examples for string handling applications - (2011-02-05)
[3159] Returning multiple values from a function call in various languages - a comparison - (2011-02-06)
[3200] How a for loop works Java, Perl and other languages - (2011-03-12)
[3253] Is this number between? Does this list include? - Ruby - (2011-04-18)
[3254] Multiple inputs, multiple out, ruby functions - (2011-04-19)
[3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
[3422] Assigning values to variables within other statements - Ruby - (2011-09-07)
[3619] Ruby v Perl - a comparison example - (2012-02-21)
[3620] Finding the total, average, minimum and maximum in a program - (2012-02-22)
[3769] Muttable v immutable and implications - Ruby - (2012-06-20)
[4322] Learning to Program - the conditional statement (if) - (2014-11-21)
[4323] Learning to program - Loop statements such as while - (2014-11-22)
[4370] Conditionals, loops and methods in Ruby - a primer with simple examples - (2014-12-29)
[4402] Finding sum, minimum, maximum and average in Python (and Ruby) - (2015-01-19)
[4503] Separating your code for easier testing, understanding and re-use; example in Ruby - (2015-06-02)
[4504] Where does Ruby load modules from, and how to load from current directory - (2015-06-03)
[4674] Alternating valuses / flip-flop / toggle - example in Ruby - (2016-05-17)
Some other Articles
Practical polymorphism in actionGeorge Hotel and Well House Manor, MelkshamProducts that our customers want more of1st, 2nd, 3rd revisited in RubyIt's the 1st, not the 1nd 1rd or 1th.Plain Ole nice picturesImproving the historic town of MelkshamPython security - trouble with inputPython collections - mutable and imutable