rubyで順序文字列のソート

 なんか最近Rubyでプログラムしてないので、Ruby力が落ちてるようなw;


 まあ、ちょっとヤボ用で
n行がセット、n×m行の文字列をソートするスクリプト
書いたいので貼っつけておく*1

str =<<EOS
Name1
Age9
Score7
Name2
Age2
Score1000
Name3
Age8
Score100
EOS

str = str.split("\n")

ary = []
until str.empty?
  ary << str[0..2];  str = str[3..-1]
end

require 'pp'

#Ageでsort
pp ary.sort{|a,b| a[1] <=> b[1]}    #=> [["Name2", "Age2", "Score1000"],
                                    #    ["Name3", "Age8", "Score100"],
                                    #    ["Name1", "Age9", "Score7"]]
#Scoreでsort
pp ary.sort{|a,b|
  a[2].sub("Score",'').to_i <=>
  b[2].sub("Score",'').to_i}        #=> [["Name1", "Age9", "Score7"],
                                    #    ["Name3", "Age8", "Score100"],
                                    #    ["Name2", "Age2", "Score1000"]]

 やっぱりRubyは、配列の分割とか、ソートとか、楽だな^^

*1:久しぶりのRubyなので、<=>演算子なんてわすれてるw;