Class: SimpleMetric::Metric

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/simple_metric.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add_data_point(key, date, value) ⇒ Object



85
86
87
# File 'lib/simple_metric.rb', line 85

def self.add_data_point(key, date, value)
  find_or_create_by(:key => key).add_data_point(date, value)
end

Instance Method Details

#add_data_point(date, value) ⇒ Object



89
90
91
92
93
94
95
96
97
# File 'lib/simple_metric.rb', line 89

def add_data_point(date, value)
  self.data_set ||= []

  raise "value '#{value}' is not a number" unless value.is_a? Numeric

  data_set << [date.to_time, value]

  save!
end

#data_pointsObject



111
112
113
114
115
# File 'lib/simple_metric.rb', line 111

def data_points
  if data_set.present?
    data_set.map { |row| DataPoint.new(row[0], row[1]) }
  end
end

#data_set_objectObject



105
106
107
108
109
# File 'lib/simple_metric.rb', line 105

def data_set_object
  if data_set.present?
    DataSet.new(data_points)
  end
end

#get_value(date) ⇒ Object



99
100
101
102
103
# File 'lib/simple_metric.rb', line 99

def get_value(date)
  @data_set_object ||= data_set_object

  @data_set_object.get_value(date.to_f)
end