Class: IceCube::Validations::YearlyInterval::Validation

Inherits:
Object
  • Object
show all
Defined in:
lib/ice_cube/validations/yearly_interval.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(interval) ⇒ Validation

Returns a new instance of Validation.


16
17
18
# File 'lib/ice_cube/validations/yearly_interval.rb', line 16

def initialize(interval)
  @interval = interval
end

Instance Attribute Details

#intervalObject (readonly)

Returns the value of attribute interval


14
15
16
# File 'lib/ice_cube/validations/yearly_interval.rb', line 14

def interval
  @interval
end

Instance Method Details

#build_hash(builder) ⇒ Object


38
39
40
# File 'lib/ice_cube/validations/yearly_interval.rb', line 38

def build_hash(builder)
  builder[:interval] = interval
end

#build_ical(builder) ⇒ Object


42
43
44
45
46
47
# File 'lib/ice_cube/validations/yearly_interval.rb', line 42

def build_ical(builder)
  builder['FREQ'] << 'YEARLY'
  unless interval == 1
    builder['INTERVAL'] << interval
  end
end

#build_s(builder) ⇒ Object


34
35
36
# File 'lib/ice_cube/validations/yearly_interval.rb', line 34

def build_s(builder)
  builder.base = IceCube::I18n.t('ice_cube.each_year', count: interval)
end

#dst_adjust?Boolean

Returns:

  • (Boolean)

24
25
26
# File 'lib/ice_cube/validations/yearly_interval.rb', line 24

def dst_adjust?
  true
end

#typeObject


20
21
22
# File 'lib/ice_cube/validations/yearly_interval.rb', line 20

def type
  :year
end

#validate(step_time, start_time) ⇒ Object


28
29
30
31
32
# File 'lib/ice_cube/validations/yearly_interval.rb', line 28

def validate(step_time, start_time)
  years = step_time.year - start_time.year
  offset = (years % interval).nonzero?
  interval - offset if offset
end