lib/system_metrics/store.rb in system-metrics-0.1.0 vs lib/system_metrics/store.rb in system-metrics-0.2.0

- old
+ new

@@ -1,31 +1,26 @@ module SystemMetrics class Store + 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 - 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) + 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 - end - def create_metric(event, merge_params={}) - action, category = event.name.split('.') - params = event.to_hash.delete_if do |key, value| - ![:name, :started_at, :transaction_id, :payload, :duration, :exclusive_duration].include?(key) + def create_metric(event, merge_params={}) + SystemMetrics::Metric.create(event.to_hash.merge(merge_params)) end - params = params.merge(merge_params).merge( - :action => action, - :category => category - ) - SystemMetrics::Metric.create(params) - end + end end