module IceCube::Validations::HourOfDay
Public Instance Methods
hour_of_day(*hours)
click to toggle source
Add hour of day validations
# File lib/ice_cube/validations/hour_of_day.rb, line 6 def hour_of_day(*hours) hours.flatten.each do |hour| unless hour.is_a?(Integer) raise ArgumentError, "expecting Integer value for hour, got #{hour.inspect}" end verify_alignment(hour, :hour, :hour_of_day) { |error| raise error } validations_for(:hour_of_day) << Validation.new(hour) end clobber_base_validations(:hour) self end
realign(opening_time, start_time)
click to toggle source
Calls superclass method
# File lib/ice_cube/validations/hour_of_day.rb, line 20 def realign(opening_time, start_time) return super unless validations[:hour_of_day] freq = base_interval_validation.interval first_hour = Array(validations[:hour_of_day]).min_by(&:value) time = TimeUtil::TimeWrapper.new(start_time, false) if freq > 1 && base_interval_validation.type == :hour offset = first_hour.validate(opening_time, start_time) time.add(:hour, offset - freq) else time.hour = first_hour.value end super opening_time, time.to_time end