Module: RailsAdminCharts::ClassMethods

Defined in:
lib/rails_admin_charts.rb

Instance Method Summary collapse

Instance Method Details

#delta_records_since(since = 30.days.ago) ⇒ Object



15
16
17
18
# File 'lib/rails_admin_charts.rb', line 15

def delta_records_since(since = 30.days.ago)
  deltas = self.group('DATE(created_at)').count
  (since.to_date..Date.today).map { |date| deltas[date] || 0 }
end

#graph_data(since = 30.days.ago) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/rails_admin_charts.rb', line 20

def graph_data since=30.days.ago
  [
      {
          name: model_name.pluralize,
          pointInterval: 1.day * 1000,
          pointStart: since.to_i * 1000,
          data: self.total_records_since(since)
      }
  ]
end

#total_records_since(since = 30.days.ago) ⇒ Object



10
11
12
13
# File 'lib/rails_admin_charts.rb', line 10

def total_records_since(since = 30.days.ago)
  totals, before_count = self.group('DATE(created_at)').count, self.where('created_at < ?', since.to_date).count
  (since.to_date..Date.today).each_with_object([]) { |day, a| a << (a.last || before_count) + (totals[day] || 0) }
end