Module: Metrics

Defined in:
lib/metrics.rb

Constant Summary collapse

DATA_FILE =
'releases.csv'

Class Method Summary collapse

Class Method Details

.data_in_year(year) ⇒ Object



17
18
19
# File 'lib/metrics.rb', line 17

def data_in_year(year)
  return release_data.select { |release_array| release_year(release_array) == year }
end

.foss_releases_in_year(year) ⇒ Object



45
46
47
# File 'lib/metrics.rb', line 45

def foss_releases_in_year(year)
  return releases_in_year(year) - pe_releases_in_year(year)
end

.pe_releases_in_year(year) ⇒ Object



41
42
43
# File 'lib/metrics.rb', line 41

def pe_releases_in_year(year)
  return releases_of_project_in_year(year, 'Puppet Enterprise')
end

.release_dataObject



8
9
10
# File 'lib/metrics.rb', line 8

def release_data
  return CSV.read(DATA_FILE)
end

.release_year(release_array) ⇒ Object



12
13
14
15
# File 'lib/metrics.rb', line 12

def release_year(release_array)
  date_string = release_array.first
  return date_string.split('/').last
end

.releases_in_year(year) ⇒ Object



21
22
23
# File 'lib/metrics.rb', line 21

def releases_in_year(year)
  return data_in_year(year).count
end

.releases_of_project_in_year(year, project) ⇒ Object



36
37
38
39
# File 'lib/metrics.rb', line 36

def releases_of_project_in_year(year, project)
  project_releases = data_in_year(year).select { |release_array| release_array.include? project }
  return project_releases.count
end

.releases_per_day_in_year(year) ⇒ Object



25
26
27
28
29
30
# File 'lib/metrics.rb', line 25

def releases_per_day_in_year(year)
  # use a decimal so that division includes the decimal
  days_in_year = 365.0
  days_in_year = 366.0 if Date.new(year.to_i).leap?
  return releases_in_year(year) / days_in_year
end

.releases_per_week_in_year(year) ⇒ Object



32
33
34
# File 'lib/metrics.rb', line 32

def releases_per_week_in_year(year)
  return releases_per_day_in_year(year) * 7
end