class ChronicDuration::Duration
Attributes
days[RW]
hours[RW]
minutes[RW]
months[RW]
seconds[RW]
years[RW]
Public Class Methods
new(seconds)
click to toggle source
# File lib/chronic_duration.rb, line 92 def initialize seconds @years = @months = @days = @hours = @minutes = 0 @seconds = seconds compute_measures seconds end
Private Instance Methods
assign(setter, value)
click to toggle source
# File lib/chronic_duration.rb, line 122 def assign setter, value self.send setter, value end
compute_measures(seconds)
click to toggle source
# File lib/chronic_duration.rb, line 100 def compute_measures seconds quotient = seconds remainder = 0 unit_of_measures.each do |uom| break unless quotient > uom[:amount] remainder = quotient % uom[:amount] quotient /= uom[:amount] assign uom[:name], remainder assign uom[:parent], quotient.to_i end end
unit_of_measures()
click to toggle source
# File lib/chronic_duration.rb, line 113 def unit_of_measures [ { :name => :seconds=, :parent => :minutes=, :amount => 60 }, { :name => :minutes=, :parent => :hours=, :amount => 60 }, { :name => :hours=, :parent => :days=, :amount => 24 }, { :name => :days=, :parent => :months=, :amount => 30 }, { :name => :months=, :parent => :years=, :amount => 12 } ] end