Class: Renalware::Duration

Inherits:
Object
  • Object
show all
Defined in:
app/values/renalware/duration.rb

Defined Under Namespace

Classes: Hour, Minute

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(seconds) ⇒ Duration

Returns a new instance of Duration.



19
20
21
# File 'app/values/renalware/duration.rb', line 19

def initialize(seconds)
  @seconds = seconds
end

Instance Attribute Details

#secondsObject (readonly)

Returns the value of attribute seconds.



5
6
7
# File 'app/values/renalware/duration.rb', line 5

def seconds
  @seconds
end

Class Method Details

.from_minutes(minutes) ⇒ Object



27
28
29
30
31
# File 'app/values/renalware/duration.rb', line 27

def self.from_minutes(minutes)
  minutes = 0 if minutes.nil? || minutes.blank?
  seconds = minutes.to_i * 60
  Duration.new(seconds)
end

.from_string(value) ⇒ Object



23
24
25
# File 'app/values/renalware/duration.rb', line 23

def self.from_string(value)
  Duration.new(to_seconds(value))
end

Instance Method Details

#to_sObject

Returns the duration in hours and minutes format: “hh:mm”



34
35
36
37
38
39
40
# File 'app/values/renalware/duration.rb', line 34

def to_s
  return "" if @seconds.nil?

  hours, seconds = @seconds.divmod(Hour.to_seconds(1))
  minutes = seconds / Minute.to_seconds(1)
  sprintf("%d:%02d", hours, minutes)
end