class MemoryTracker::Stores::InMemoryStore::Stats

Public Class Methods

new() click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 61
def initialize
  @data = {}
end

Public Instance Methods

count(controller, action) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 70
def count(controller, action)
  ca = controller_action_data(controller, action)
  ca[:num]
end
each() { |controller, action, stats| ... } click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 75
def each(&block)
  @data.each do |controller, h|
    h.each do |action, stats|
      yield [controller, action, stats]
    end
  end
end
fetch(controller, action, attr) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 65
def fetch(controller, action, attr)
  ca = controller_action_data(controller, action)
  ca[:gcstat][attr]
end
increment_action_attribute(controller, action, attr, value) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 88
def increment_action_attribute(controller, action, attr, value)
  ca = controller_action_data(controller, action)
  if ca[:gcstat][attr]
    ca[:gcstat][attr] += value
  else
    ca[:gcstat][attr] = value
  end
end
increment_action_count(controller, action) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 83
def increment_action_count(controller, action)
  ca = controller_action_data(controller, action)
  ca[:num] += 1
end
to_a() click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 98
def to_a
  a = []
  @data.each do |controller, actions|
    actions.each do |action, counters|
      row = { :controller => controller, :action => action, :num => counters[:num] }
      row.merge!(counters[:gcstat])
      a << row
    end
  end
  a
end

Private Instance Methods

controller_action_data(controller, action) click to toggle source
# File lib/memory_tracker/stores/in_memory_store.rb, line 112
def controller_action_data(controller, action)
  @data[controller] = { action => { :num => 0, :gcstat => {} } } unless @data[controller]
  @data[controller][action] = { :num => 0, :gcstat => {} }       unless @data[controller][action]
  @data[controller][action]
end