class Vpim::Duration
Constants
- MINS_HOUR
- SECS_DAY
- SECS_HOUR
Public Class Methods
as_str(arr)
click to toggle source
# File lib/vpim/duration.rb, line 72 def Duration.as_str(arr) s = "" case arr.length when 4 if arr[0] > 0 s << "#{arr[0]} days" end if arr[1] > 0 if s.length > 0 s << ', ' end s << "#{arr[1]} hours" end if arr[2] > 0 if s.length > 0 s << ', ' end s << "#{arr[2]} mins" end if arr[3] > 0 if s.length > 0 s << ', ' end s << "#{arr[3]} secs" end when 3 if arr[0] > 0 s << "#{arr[0]} hours" end if arr[1] > 0 if s.length > 0 s << ', ' end s << "#{arr[1]} mins" end if arr[2] > 0 if s.length > 0 s << ', ' end s << "#{arr[2]} secs" end end s end
days(days)
click to toggle source
# File lib/vpim/duration.rb, line 32 def Duration.days(days) Duration.new(days * SECS_DAY) end
hours(hours)
click to toggle source
# File lib/vpim/duration.rb, line 28 def Duration.hours(hours) Duration.new(hours * SECS_HOUR) end
mins(mins)
click to toggle source
# File lib/vpim/duration.rb, line 24 def Duration.mins(mins) Duration.new(mins * 60) end
new(secs)
click to toggle source
Initialize from a number of seconds.
# File lib/vpim/duration.rb, line 16 def initialize(secs) @secs = secs end
secs(secs)
click to toggle source
# File lib/vpim/duration.rb, line 20 def Duration.secs(secs) Duration.new(secs) end
Public Instance Methods
by_days()
click to toggle source
# File lib/vpim/duration.rb, line 60 def by_days [ days, hours % 24, mins % MINS_HOUR, secs % 60] end
by_hours()
click to toggle source
# File lib/vpim/duration.rb, line 56 def by_hours [ hours, mins % MINS_HOUR, secs % 60] end
days()
click to toggle source
# File lib/vpim/duration.rb, line 48 def days (@secs/SECS_DAY).to_i end
hours()
click to toggle source
# File lib/vpim/duration.rb, line 44 def hours (@secs/SECS_HOUR).to_i end
mins()
click to toggle source
# File lib/vpim/duration.rb, line 40 def mins (@secs/60).to_i end
secs()
click to toggle source
# File lib/vpim/duration.rb, line 36 def secs @secs end
to_a()
click to toggle source
# File lib/vpim/duration.rb, line 64 def to_a by_days end
to_s()
click to toggle source
# File lib/vpim/duration.rb, line 68 def to_s Duration.as_str(self.to_a) end
weeks()
click to toggle source
# File lib/vpim/duration.rb, line 52 def weeks (days/7).to_i end