Sha256: da27c041f372a6f6a6fe20d0a31551a979906eb6d905fbb0e8ce02a8bbc7ec63
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
require 'ruby-duration' class FormattedDuration CONSTRAINTS = [:minutes, :hours, :days, :weeks] def initialize(minutes, constraint = :weeks) @constraint = CONSTRAINTS.index(constraint) @minutes = minutes @hours = minutes / 60 @days = @hours / 24 @weeks = @days / 7 end def format weekless_days = @days % 7 dayless_hours = @hours % 24 hourless_minutes = @minutes % 60 output = [] if @weeks != 0 && @constraint > 2 output << Duration.new(weeks: @weeks).format('%w %~w') end if weekless_days != 0 && @constraint > 1 output << Duration.new(days: weekless_days).format('%d %~d') elsif @days > 0 && @constraint == 2 output << Duration.new(days: @days).format('%tdu') end if dayless_hours != 0 && @constraint > 0 output << Duration.new(hours: dayless_hours).format('%h %~h') elsif @hours > 0 && @constraint == 1 output << Duration.new(hours: @hours).format('%thu') end if hourless_minutes != 0 output << Duration.new(minutes: hourless_minutes).format('%m %~m') elsif @minutes > 0 && @constraint == 0 output << Duration.new(minutes: @minutes).format('%tmu') end output.join(', ') end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
duration-formatter-1.0.0 | lib/formatted_duration.rb |