Module: GracefulRounding
- Included in:
- Time
- Defined in:
- lib/graceful_rounding.rb,
lib/graceful_rounding/version.rb
Constant Summary collapse
- VERSION =
"0.0.1"
Instance Method Summary collapse
-
#graceful_rounding ⇒ Object
takes a Time object and rounds the minutes within a grace period (+/- 7 min of the quarter hour) returns a new time object.
Instance Method Details
#graceful_rounding ⇒ Object
takes a Time object and rounds the minutes within a grace period (+/- 7 min of the quarter hour) returns a new time object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/graceful_rounding.rb', line 7 def graceful_rounding raise ArgumentError, 'Argument is not Time class' unless self.is_a? Time @time = self mins = @time.min if mins == 00 return @time elsif (1..7).cover?(mins) return @time -= (mins*60) elsif (8..14).cover?(mins) return @time += (15 - mins)*60 elsif mins == 15 return @time elsif (16..22).cover?(mins) return @time -= (mins - 15)*60 elsif (23..29).cover?(mins) return @time += (30 - mins)*60 elsif mins == 30 return @time elsif (31..37).cover?(mins) return @time -= (mins - 30)*60 elsif (38..44).cover?(mins) return @time += (45 - mins)*60 elsif mins == 45 return @time elsif (46..52).cover?(mins) return @time -= (mins - 45)*60 elsif (53..59).cover?(mins) return @time += (60 - mins)*60 else raise 'value of Time.min is not between 00..59' end end |