Skip to content

Instantly share code, notes, and snippets.

@Nimster
Forked from eerohele/ringbuffer.rb
Created November 15, 2012 11:21
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nimster/4078106 to your computer and use it in GitHub Desktop.
Save Nimster/4078106 to your computer and use it in GitHub Desktop.
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
@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