Class: IceCube::SecondOfMinuteValidation
Constant Summary
Constants inherited
from Validation
Validation::NUMBER_SUFFIX, Validation::SPECIAL_SUFFIX
Instance Method Summary
collapse
Methods inherited from Validation
adjust, nice_numbers, sentence
Constructor Details
Returns a new instance of SecondOfMinuteValidation.
5
6
7
|
# File 'lib/ice_cube/validations/second_of_minute.rb', line 5
def initialize(rule)
@seconds_of_minute = rule.validations[:second_of_minute]
end
|
Instance Method Details
#closest(date) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/ice_cube/validations/second_of_minute.rb', line 14
def closest(date)
return nil if !@seconds_of_minute || @seconds_of_minute.empty?
seconds = @seconds_of_minute.map do |s|
s > date.sec ? s - date.sec : 60 - date.sec + s
end
seconds.compact!
closest_second = seconds.min
goal = date + closest_second
self.class.adjust(goal, date)
end
|
#to_ical ⇒ Object
32
33
34
|
# File 'lib/ice_cube/validations/second_of_minute.rb', line 32
def to_ical
'BYSECOND=' << @seconds_of_minute.join(',') unless @seconds_of_minute.empty?
end
|
#to_s ⇒ Object
28
29
30
|
# File 'lib/ice_cube/validations/second_of_minute.rb', line 28
def to_s
'on the ' << self.class.nice_numbers(@seconds_of_minute) << (@seconds_of_minute.size == 1 ? ' second' : ' seconds') << ' of the minute' unless @seconds_of_minute.empty?
end
|
#validate(date) ⇒ Object
9
10
11
12
|
# File 'lib/ice_cube/validations/second_of_minute.rb', line 9
def validate(date)
return true if !@seconds_of_minute || @seconds_of_minute.empty?
@seconds_of_minute.include?(date.sec)
end
|