私はこれを達成する方法を知っていますが、それを行うためのルビーの方法のようには見えません。
週の日のハッシュがあります:
DAYS = {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday",
7 => "Sunday"}
(おそらくこれにはいくつかのRailsヘルパーがありますが、私はそれを私が考えることができる最速の方法で実装しました)
ここで、最初の要素が今日であり、他の日は順序付けられたままである配列を作成したいと思います。
これがこの配列です
def day_keys
# proper sorting of days, start with today and then continue
day_array = (1..7).to_a
loop do
break if day_array.first == Time.now.wday
day_array.rotate!
end
day_array
end
今日は金曜日なので、戻ります[5,6,7,1,2,3,4]
。この後、この配列の値をDAYS
ハッシュのキーにマップして、曜日の名前を見つけます。
解決策は私にはかなりラフに思えるので、これを実装する方法についていくつかのアイデアを聞きたいと思います。私はしばらく見てきましたArray#cycle
がEnumerable#inject
、私のニーズに合うものは何もないようです。