-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapplication.rb
38 lines (34 loc) · 1.31 KB
/
application.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Application < ActiveRecord::Base
extend Csvable
belongs_to :collection
has_one :subject, through: :collection
# Calculates average age since install in days
def self.average_application_install_age
number_of_applications = Application.all.count
average_age = 0
Application.all.each do |application|
average_age = average_age + application.date.to_time.to_i - application.first_installed.to_time.to_i
end
average_age = average_age / number_of_applications unless number_of_applications == 0
# Convert seconds into days
average_age / 86_400
end
# Calculates maximum age since install in days
def self.maximum_application_install_age
application_ages = []
Application.all.each do |application|
application_ages.push(application.date.to_time.to_i - application.first_installed.to_time.to_i)
end
# Convert seconds into days
application_ages.max / 86_400 unless application_ages.empty?
end
# Calculates minimum age since install in days
def self.minimum_application_file_age
application_ages = []
Application.all.each do |application|
application_ages.push(application.date.to_time.to_i - application.first_installed.to_time.to_i)
end
# Convert seconds into days
application_ages.min / 86_400 unless application_ages.empty?
end
end