class PistePal::SeasonPass
Attributes
days[RW]
distance[RW]
maximum_speed[RW]
resorts[RW]
runs[RW]
total_hours[RW]
vertical[RW]
Public Class Methods
new(files:)
click to toggle source
# File lib/piste_pal/season_pass.rb, line 16 def initialize(files:) @days = [] files.each do |f| @days.push(PistePal::DayPass.purchase(f)) end @resorts = @days.map {|day| day.resort }.uniq @runs = @days.map {|day| day.runs.count }.reduce(0, :+) @vertical = { :value => @days.map {|day| day.vertical[:value] }.reduce(0, :+), :unit => @days.first.vertical[:unit] } @distance = { :value => @days.map {|day| day.distance[:value] }.reduce(0, :+), :unit => @days.first.distance[:unit] } @maximum_speed = generate_maximum_speed @total_hours = generate_total_hours end
purchase(files)
click to toggle source
# File lib/piste_pal/season_pass.rb, line 5 def self.purchase files new(files: files) end
Private Instance Methods
generate_maximum_speed()
click to toggle source
# File lib/piste_pal/season_pass.rb, line 37 def generate_maximum_speed maximum_speed = nil @days.each do |day| maximum_speed = day.maximum_speed if maximum_speed.nil? || day.maximum_speed[:value] > maximum_speed[:value] end return maximum_speed end
generate_total_hours()
click to toggle source
# File lib/piste_pal/season_pass.rb, line 45 def generate_total_hours @days.map {|day| day.total_hours }.reduce(0, :+) end