Интересно, возможно ли что-то подобное без перебора всего хеша:
collection = { red: 1000, green: 120, "yellow" => 1, blue: 999 }
Примерно так:
collection.next_key(:red) #Should return :green
collection.prev_key(:blue) #Should return "yellow"
EDIT :: Я надеялся получить доступ к элементу fore
и back
внутренней структуры данных Ruby Hash:
struct st_table_entry {
unsigned int hash;
st_data_t key;
st_data_t record;
st_table_entry *next;
st_table_entry *fore, *back; // new in Ruby 1.9
};
( Источник )