class Object
Public Instance Methods
convert(str)
click to toggle source
# File bin/pto, line 6 def convert(str) case str when /(.*)\/(.*)/ return Float($1) / Float($2) when /(.*)\.(.*)/ return Float(str) else return Integer(str) end end
days_until_cap(accrual:, cap:, rate:)
click to toggle source
# File bin/pto, line 17 def days_until_cap(accrual:, cap:, rate:) days = 0 return days if accrual >= cap daily_rate = rate / 365.0 while accrual < cap accrual += daily_rate days += 1 end days end
main(options = {})
click to toggle source
# File bin/pto, line 29 def main(options = {}) accrual = convert(options[:accrual]) cap = convert(options[:cap]) rate = convert(options[:rate]) days = days_until_cap(accrual: accrual, cap: cap, rate: rate) if days == 0 puts "Already over cap :-( Please take some PTO ASAP!" else cap_date = Date.today + days puts "Cap is hit in #{days} days - on #{cap_date}. Please take some PTO before then :-)" end return true end