class SystemMetrics::Store
Public Instance Methods
save(events)
click to toggle source
# File lib/system_metrics/store.rb, line 4 def save(events) return unless events.present? root_event = SystemMetrics::NestedEvent.arrange(events, :presort => false) root_model = create_metric(root_event) root_model.update_attributes(:request_id => root_model.id) save_tree(root_event.children, root_model.id, root_model.id) end
Private Instance Methods
create_metric(event, merge_params={})
click to toggle source
# File lib/system_metrics/store.rb, line 21 def create_metric(event, merge_params={}) SystemMetrics::Metric.create(event.to_hash.merge(merge_params)) end
save_tree(events, request_id, parent_id)
click to toggle source
# File lib/system_metrics/store.rb, line 14 def save_tree(events, request_id, parent_id) events.each do |event| model = create_metric(event, :request_id => request_id, :parent_id => parent_id) save_tree(event.children, request_id, model.id) end end