From: "Lorenzo E. Danielsson" Date: 2008-01-24T10:04:45+09:00 Subject: Re: Alphabetizing Zenki Nine wrote: > Gavin Kistner wrote: >> Slightly simpler than my previous: >> >> retired_players = <> Mike Anthony Gallego, 1985-1997 >> Calvin Edwin Ripken, Jr., 1981-2001 >> Tony K. Gwynn, 1982-2004 >> Dennis Eckersley, 1975-1998 >> PLAYERS >> >> # Find player info: yields an array of arrays >> players = retired_players.scan( /^(.+), (\d+)-(\d+)/ ) >> >> players = players.sort_by{ |name, start_year, end_year| >> # find the last name to use as the sort key >> name[ /\w+(?:, (?:jr\.|sr\.|phd|dds))?$/i ] >> } >> >> p players >> #=> [["Dennis Eckersley", "1975", "1998"], ["Mike Anthony Gallego", >> "1985", "1997"], ["Tony K. Gwynn", "1982", "2004"], ["Calvin Edwin >> Ripken, Jr.", "1981", "2001"]] > > Thanks. Is there a way where I can display the full tenure? ie. > "1975-1998" instead? > > I want to display in full: > > 'Dennis Eckersley, 1975-1998' > Replace: p players with: players.each { |p, s, e| puts "#{p}, #{s}-#{e}" }