Очевидное упрощение:
new_array = File.readlines("#{$base_properties}").sort
File.open("#{$base_properties}","w") do |file|
file.puts new_array
end
Я бы просто определил такой метод, делая противоположное File.read
.Он многократно используется и действительно должен быть частью стандарта:
def File.write!(path, contents)
File.open(path, "w"){|fh| fh.write contents}
end
И тогда сортировка становится:
File.write!($base_properties, File.readlines($base_properties).sort.join)