Class: RailsVitals::Store
- Inherits:
-
Object
- Object
- RailsVitals::Store
- Defined in:
- lib/rails_vitals/store.rb
Instance Method Summary collapse
- #all ⇒ Object
- #clear ⇒ Object
- #find(id) ⇒ Object
-
#initialize(size) ⇒ Store
constructor
A new instance of Store.
- #push(record) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(size) ⇒ Store
Returns a new instance of Store.
3 4 5 6 7 |
# File 'lib/rails_vitals/store.rb', line 3 def initialize(size) @size = size @records = [] @mutex = Mutex.new end |
Instance Method Details
#all ⇒ Object
16 17 18 |
# File 'lib/rails_vitals/store.rb', line 16 def all @mutex.synchronize { @records.dup } end |
#clear ⇒ Object
26 27 28 |
# File 'lib/rails_vitals/store.rb', line 26 def clear @mutex.synchronize { @records.clear } end |
#find(id) ⇒ Object
20 21 22 23 24 |
# File 'lib/rails_vitals/store.rb', line 20 def find(id) @mutex.synchronize do @records.find { |r| r.id == id } end end |
#push(record) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/rails_vitals/store.rb', line 9 def push(record) @mutex.synchronize do @records.push(record) @records.shift if @records.size > @size end end |
#size ⇒ Object
30 31 32 |
# File 'lib/rails_vitals/store.rb', line 30 def size @mutex.synchronize { @records.size } end |