fork download
  1. require 'date'
  2.  
  3. jobs = [
  4. [Date.new(2014, 7, 22), '140987E'],
  5. [Date.new(2014, 7, 22), '1482923'],
  6. [Date.new(2014, 7, 22), '140987Z'],
  7. [Date.new(2014, 5, 15), '12N7Y65'],
  8. ]
  9.  
  10. puts "asc/asc"
  11. sorted = jobs.sort_by { |j| [j.first, j.last] }
  12. puts sorted.map(&:inspect)
  13.  
  14. puts "desc/desc"
  15. sorted = jobs.sort_by { |j| [j.first, j.last] }.reverse
  16. puts sorted.map(&:inspect)
  17.  
  18. puts "desc/asc"
  19. sorted = jobs.sort do |a, b|
  20. if((b.first <=> a.first) == 0)
  21. a.last <=> b.last
  22. else
  23. b.first <=> a.first
  24. end
  25. end
  26. puts sorted.map(&:inspect)
  27.  
  28. puts "asc/desc"
  29. sorted = jobs.sort do |a, b|
  30. if((a.first <=> b.first) == 0)
  31. b.last <=> a.last
  32. else
  33. a.first <=> b.first
  34. end
  35. end
  36. puts sorted.map(&:inspect)
  37.  
Success #stdin #stdout 0.01s 7804KB
stdin
Standard input is empty
stdout
asc/asc
[#<Date: 2014-05-15 ((2456793j,0s,0n),+0s,2299161j)>, "12N7Y65"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987E"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987Z"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "1482923"]
desc/desc
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "1482923"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987Z"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987E"]
[#<Date: 2014-05-15 ((2456793j,0s,0n),+0s,2299161j)>, "12N7Y65"]
desc/asc
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987E"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987Z"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "1482923"]
[#<Date: 2014-05-15 ((2456793j,0s,0n),+0s,2299161j)>, "12N7Y65"]
asc/desc
[#<Date: 2014-05-15 ((2456793j,0s,0n),+0s,2299161j)>, "12N7Y65"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "1482923"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987Z"]
[#<Date: 2014-07-22 ((2456861j,0s,0n),+0s,2299161j)>, "140987E"]