From: hanmac@... Date: 2015-01-06T15:24:09+00:00 Subject: [ruby-core:67366] [ruby-trunk - Feature #10701] Class:Array 2 New methods Issue #10701 has been updated by Hans Mackowiak. i think this functions might be interesting, but i would try to write them to that they are available in Enumerable too ---------------------------------------- Feature #10701: Class:Array 2 New methods https://bugs.ruby-lang.org/issues/10701#change-50814 * Author: Eugene Kuhn * Status: Open * Priority: Normal * Assignee: * Category: * Target version: ---------------------------------------- Hi, New to this, but this is an Array method that I use a lot and thought it might be included in a release, it's basic, but very helpful when you need to rotate certain defined values ie. log rotation with monthly timestamps class Array def next(value) #Returns next element value (and loop to the beginning if last element is matched ) based on first input found. if not found, returns first value of array self[((self.index(value)||-1)+1)%self.size] end def prev(value) #Returns previous element value (and loop to the end if first element is matched ) based on first input found. if not found, returns first value of array self[((self.index(value)||1)-1)%self.size] end end arr1 = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] puts arr1.next("") #=> returns "Jan" puts arr1.prev("") #=> returns "Jan" puts arr1.next("Apr") #=> returns "May" puts arr1.next("Dec") #=> returns "Jan" puts arr1.prev("Jan") #=> returns "Dec" puts arr1.prev("Apr") #=> returns "Mar" -- https://bugs.ruby-lang.org/