Sha256: 215975fcfa5c5b3b2666bf0d0d2ca6a3cddf7a493d6d87412b69b440e85864a7
Contents?: true
Size: 960 Bytes
Versions: 3
Compression:
Stored size: 960 Bytes
Contents
require 'time_distribution/smart_duration' module TimeDistribution class Task attr_reader :subject, :time_taken, :desc # @param [#to_s] subject The subject on which the task was completed. E.g. A course or project. # @param [#to_s] time_taken The amount of time taken on the task (Compatible with +ChronicDuration+ parsing, or a range of times that conform to +Chronic+ parsing). # @param [#to_s] desc The task's description. def initialize(subject, time_taken, desc) @subject = subject @time_taken = SmartDuration.parse(time_taken) @desc = desc end def to_s() "#{to_headline}: #{to_desc}" end def to_desc() @desc.strip end def to_headline "#{to_hours_s} hours of #{@subject}" end def to_hours @time_taken.total / (60 * 60).to_f end def to_hours_s format('%0.2f', to_hours) end def to_ssv format("%-25s%10s", @subject, to_hours_s) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
time_distribution-2.0.2 | lib/time_distribution/task.rb |
time_distribution-2.0.1 | lib/time_distribution/task.rb |
time_distribution-2.0.0 | lib/time_distribution/task.rb |