timerizer 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/timerizer.rb +13 -6
- metadata +1 -1
data/lib/timerizer.rb
CHANGED
@@ -444,7 +444,7 @@ class WallClock
|
|
444
444
|
raise TimeOutOfBoundsError
|
445
445
|
end
|
446
446
|
|
447
|
-
hour += 12 if meridiem == :pm
|
447
|
+
hour += 12 if (meridiem == :pm and !(hour == 12))
|
448
448
|
end
|
449
449
|
|
450
450
|
@seconds =
|
@@ -513,8 +513,14 @@ class WallClock
|
|
513
513
|
# @return [Fixnum] The hour component of the WallClock
|
514
514
|
def hour(system = :twenty_four_hour)
|
515
515
|
hour = self.to_relative.hours
|
516
|
-
if
|
517
|
-
hour
|
516
|
+
if system == :twelve_hour
|
517
|
+
if hour == 0
|
518
|
+
12
|
519
|
+
elsif hour > 12
|
520
|
+
hour - 12
|
521
|
+
else
|
522
|
+
hour
|
523
|
+
end
|
518
524
|
elsif (system == :twenty_four_hour)
|
519
525
|
hour
|
520
526
|
else
|
@@ -525,7 +531,7 @@ class WallClock
|
|
525
531
|
# Get the meridiem of the WallClock.
|
526
532
|
# @return [Symbol] The meridiem (either `:am` or `:pm`)
|
527
533
|
def meridiem
|
528
|
-
if self.hour > 12
|
534
|
+
if self.hour > 12 || self.hour == 0
|
529
535
|
:pm
|
530
536
|
else
|
531
537
|
:am
|
@@ -564,11 +570,12 @@ class WallClock
|
|
564
570
|
# => "17:37:00"
|
565
571
|
# @raise ArgumentError Argument isn't a proper system
|
566
572
|
def to_s(system = :twelve_hour)
|
573
|
+
pad = "%02d"
|
567
574
|
if(system == :twelve_hour)
|
568
575
|
meridiem = self.meridiem.to_s.upcase
|
569
|
-
"#{self.hour(system)}:#{self.minute}:#{self.second} #{meridiem}"
|
576
|
+
"#{self.hour(system)}:#{pad % self.minute}:#{pad % self.second} #{meridiem}"
|
570
577
|
elsif(system == :twenty_four_hour)
|
571
|
-
"#{self.hour(system)}:#{self.minute}:#{self.second}"
|
578
|
+
"#{self.hour(system)}:#{pad % self.minute}:#{pad % self.second}"
|
572
579
|
else
|
573
580
|
raise ArgumentError, "system should be :twelve_hour or :twenty_four_hour"
|
574
581
|
end
|