Class: Temporal::Units::Day

Inherits:
Base
  • Object
show all
Defined in:
lib/temporal/units/day.rb

Instance Method Summary collapse

Methods inherited from Base

#<=>, #==, #inspect, #to_f, #to_i, #to_s

Constructor Details

#initialize(value, upper) ⇒ Day

Returns a new instance of Day.



5
6
7
8
9
# File 'lib/temporal/units/day.rb', line 5

def initialize(value, upper)
  @upper = upper

  super(value)
end

Instance Method Details

#+(other) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/temporal/units/day.rb', line 15

def +(other)
  sum = @value + other

  @value = case sum
           when (..0)
             @upper -= 1
             max_value - sum.abs
           when (over_value..)
             @upper += 1
             sum - max_value + 1
           else
             sum
           end
  self
end

#-(other) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/temporal/units/day.rb', line 31

def -(other)
  sum = @value - other

  @value = case sum
           when (..0)
             @upper -= 1
             max_value - sum.abs
           when (over_value..)
             @upper += 1
             sum - max_value
           else
             sum
           end

  self
end

#max_valueObject



11
# File 'lib/temporal/units/day.rb', line 11

def max_value = @upper.max_day

#over_valueObject



13
# File 'lib/temporal/units/day.rb', line 13

def over_value = max_value + 1