Как получить только подмножество упорядоченного хэша в Ruby 1.9?

Рассмотрим этот пример:

d = {"a" => 1, "b" => 2, "c" => 3, "d" => 4}

Поскольку хэши теперь упорядочены, я могу захотеть получить данные от a к b или от c к d. Проблема в том, что я не могу сделать d[0..1] или d[2..3].

Я мог бы сделать:

irb > d.to_a[0..1]
=> [["a", 1], ["b", 2]] 

... но это кажется грязным, и я не хочу приводить свой хэш для такой операции.

Есть ли более чистое решение, чтобы справиться с этим?

# Holy Grail
irb > d[0..1]
=> {"a" => 1, "b" => 2}

Я вижу, как запрограммировать себе такой метод, но может быть есть что-то родное, уже сделанное, что я мог бы использовать...?

12
задан marcgg 6 October 2011 в 15:06
поделиться