Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A simple ring buffer for Ruby.
class RingBuffer < Array
attr_reader :max_size
def initialize(max_size, enum = nil)
@max_size = max_size
enum.each { |e| self << e } if enum
end
def <<(el)
if self.size < @max_size || @max_size.nil?
super
else
self.shift
self.push(el)
end
end
alias :push :<<
end
@eerohele
Copy link

eerohele commented Jan 4, 2013

Thanks for the comment, I also fixed the original according to your suggestion.

@werkshy
Copy link

werkshy commented Mar 28, 2014

Thanks for posting, and thanks for fixing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment