Class: HMTime

Inherits:
Object
  • Object
show all
Defined in:
lib/hmtime.rb,
lib/hmtime/version.rb

Defined Under Namespace

Classes: ArgumentError, Error, TypeError

Constant Summary collapse

ERROR_MESSAGE_1 =
'Must specify String in format of: `hhh:mm`, where h=Hours and m=Minutes; or integer in the form of #####'
VERSION =
"0.2.1"

Instance Method Summary collapse

Constructor Details

#initialize(value = 0) ⇒ HMTime

Returns a new instance of HMTime.



13
14
15
# File 'lib/hmtime.rb', line 13

def initialize(value=0)
  @minutes = check_arguments(value)
end

Instance Method Details

#+(value) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/hmtime.rb', line 37

def +(value)
  if value.is_a?(self.class)
    self.class.new(@minutes + value.to_i)
  else
    self.class.new(@minutes + check_arguments(value))
  end
end

#-(value) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/hmtime.rb', line 45

def -(value)
  if value.is_a?(self.class)
    self.class.new(@minutes - value.to_i)
  else
    self.class.new(@minutes - check_arguments(value))
  end
end

#-@Object



85
86
87
# File 'lib/hmtime.rb', line 85

def -@
  self.class.new(-@minutes)
end

#<=>(value) ⇒ Object

For Comparison



75
76
77
78
79
80
81
82
83
# File 'lib/hmtime.rb', line 75

def <=>(value)
  if @minutes < value.to_i
    -1
  elsif @minutes > value.to_i
    1
  elsif @minutes == value.to_i
    0
  end
end

#==(value) ⇒ Object

# BUG: Doesn’t work if value < 0 def *(value)

if value.is_a?(self.class)
  self.class.new(@minutes * value.to_i)
else
  self.class.new(@minutes * check_arguments(value))
end

end



70
71
72
# File 'lib/hmtime.rb', line 70

def ==(value)
    value.is_a?(HMTime) && @minutes == value.to_i
end

#hoursObject



21
22
23
# File 'lib/hmtime.rb', line 21

def hours
  (@minutes.negative? ? -1 : 1) * (@minutes.abs / 60)
end

#inspectObject



17
18
19
# File 'lib/hmtime.rb', line 17

def inspect
  time
end

#minutesObject



25
26
27
# File 'lib/hmtime.rb', line 25

def minutes
  (@minutes.negative? ? -1 : 1) * (@minutes.abs % 60)
end

#to_iObject



33
34
35
# File 'lib/hmtime.rb', line 33

def to_i
  @minutes
end

#to_sObject



29
30
31
# File 'lib/hmtime.rb', line 29

def to_s
  time
end