class SimpleMetric::Metric

Constants

MAX_SIZE

Public Class Methods

add_data_point(key, date, value) click to toggle source
# File lib/simple_metric.rb, line 122
def self.add_data_point(key, date, value)
  find_or_create_by(:key => key).add_data_point(date, value)
end

Public Instance Methods

add_data_point(date, value) click to toggle source
# File lib/simple_metric.rb, line 126
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]

  data_set.shift(data_set.size - MAX_SIZE) if data_set.size > MAX_SIZE

  save!
end
data_points() click to toggle source
# File lib/simple_metric.rb, line 150
def data_points
  if data_set.present?
    data_set.map { |row| DataPoint.new(row[0], row[1]) }
  end
end
data_set_object() click to toggle source
# File lib/simple_metric.rb, line 144
def data_set_object
  if data_set.present?
    DataSet.new(data_points)
  end
end
get_value(date) click to toggle source
# File lib/simple_metric.rb, line 138
def get_value(date)
  @data_set_object ||= data_set_object

  @data_set_object.get_value(date.to_f)
end