Skip to content

Instantly share code, notes, and snippets.

@carlows
Created January 10, 2019 01:03
Show Gist options
  • Save carlows/e39db9efa681de7cb1a47262d24a7e29 to your computer and use it in GitHub Desktop.
Save carlows/e39db9efa681de7cb1a47262d24a7e29 to your computer and use it in GitHub Desktop.
class AnnualWeather
Reading = Struct.new(:date, :high, :low)
def initialize (file_name)
@readings = []
CSV.foreach(file_name, headers: true) do |row|
@readings << Reading.new(Date.parse(row[2]),
row[10].to_f,
row[11].to_f)
end
end
def mean
return 0.0 if @readings.size.zero?
total = @readings.reduce(0.0) do |sum, reading|
sum + (reading.high + reading.low) / 2.0
end
total / @readings.size.to_f
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment