Class: HMTime
- Inherits:
-
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
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
|
#hours ⇒ Object
21
22
23
|
# File 'lib/hmtime.rb', line 21
def hours
(@minutes.negative? ? -1 : 1) * (@minutes.abs / 60)
end
|
#inspect ⇒ Object
17
18
19
|
# File 'lib/hmtime.rb', line 17
def inspect
time
end
|
#minutes ⇒ Object
25
26
27
|
# File 'lib/hmtime.rb', line 25
def minutes
(@minutes.negative? ? -1 : 1) * (@minutes.abs % 60)
end
|
#to_i ⇒ Object
33
34
35
|
# File 'lib/hmtime.rb', line 33
def to_i
@minutes
end
|
#to_s ⇒ Object
29
30
31
|
# File 'lib/hmtime.rb', line 29
def to_s
time
end
|