Module: ProcessMetrics::Persistence::ActiveRecord

Defined in:
lib/process_metrics/persistence/version.rb,
lib/process_metrics/persistence/active_record.rb,
lib/process_metrics/persistence/active_record/metric.rb,
lib/process_metrics/persistence/active_record/migration.rb

Defined Under Namespace

Classes: Metric, Migration

Constant Summary collapse

VERSION =
"0.1.10"

Class Method Summary collapse

Class Method Details

.connection=(connection_info) ⇒ Object



12
13
14
# File 'lib/process_metrics/persistence/active_record.rb', line 12

def self.connection=(connection_info)
  ::ActiveRecord::Base.establish_connection(connection_info)
end

.drop!Object



22
23
24
25
26
# File 'lib/process_metrics/persistence/active_record.rb', line 22

def self.drop!
  ::ActiveRecord::Base.connection_pool.with_connection do
    ProcessMetrics::Persistence::ActiveRecord::Migration.new.down
  end
end

.save(metric) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/process_metrics/persistence/active_record.rb', line 28

def self.save metric
  begin
    ::ActiveRecord::Base.connection_pool.with_connection do
      metric_attributes = metric.attributes.with_indifferent_access

      Metric.find_or_create_by_parent_uuid metric_attributes[:parent_uuid] if metric_attributes[:parent_uuid]

      metric = Metric.new
      metric.uuid = metric_attributes[:uuid]
      metric.parent_uuid = metric_attributes[:parent_uuid]
      metric.name = metric_attributes[:name]
      metric.data = metric_attributes[:data]
      metric.started_at = metric_attributes[:started_at]
      metric.finished_at = metric_attributes[:finished_at]
      metric.save!
    end
  rescue
    ProcessMetrics.config.logger.error $!.message
    $!.backtrace.each do |backtrace_line|
      ProcessMetrics.config.logger.error backtrace_line
    end
  end
end

.setup!Object



16
17
18
19
20
# File 'lib/process_metrics/persistence/active_record.rb', line 16

def self.setup!
  ::ActiveRecord::Base.connection_pool.with_connection do
    ProcessMetrics::Persistence::ActiveRecord::Migration.new.up
  end
end

.table_name=(table_name) ⇒ Object



8
9
10
# File 'lib/process_metrics/persistence/active_record.rb', line 8

def self.table_name=(table_name)
  ProcessMetrics::Persistence::ActiveRecord::Metric.table_name = table_name
end