Class: RailsVitals::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_vitals/store.rb

Instance Method Summary collapse

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

#allObject



16
17
18
# File 'lib/rails_vitals/store.rb', line 16

def all
  @mutex.synchronize { @records.dup }
end

#clearObject



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

#sizeObject



30
31
32
# File 'lib/rails_vitals/store.rb', line 30

def size
  @mutex.synchronize { @records.size }
end