lib/enat/enat.rb in enat-0.1.1 vs lib/enat/enat.rb in enat-0.1.2
- old
+ new
@@ -1,14 +1,20 @@
+require_relative 'error'
+
# Every Now And Then
module Enat
# Yields to block every supplied interval
#
# @param [Fixnum, Float] interval_in_seconds minimum time interval between yields
def every(interval_in_seconds)
+ unless interval_in_seconds.respond_to?(:to_f)
+ raise InvalidIntervalError, 'Interval must be a numeric (Fixnum, Float).'
+ end
+
interval_in_seconds = interval_in_seconds.to_f
- unless interval_in_seconds > 0
- raise EnatError, "Interval must be non-zero"
+ if interval_in_seconds.zero?
+ raise ZeroIntervalError, 'Interval cannot be zero.'
end
iteration = 0
loop do