Class: Time

Inherits:
Object
  • Object
show all
Defined in:
lib/weekend_warrior.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_weekday(original_time = Time.now) ⇒ Object



13
14
15
16
17
18
# File 'lib/weekend_warrior.rb', line 13

def self.next_weekday(original_time = Time.now)
  weekdays = 1..5
  result = original_time
  result += 1.day until result > original_time && weekdays.member?(result.wday)
  result
end

.previous_weekday(original_date = Time.now) ⇒ Object



27
28
29
30
31
32
# File 'lib/weekend_warrior.rb', line 27

def self.previous_weekday(original_date = Time.now)
  weekdays = 1..5
  result = original_date
  result -= 1.day until result < original_date && weekdays.member?(result.wday)
  result    
end

.weekday(original_time = Time.now) ⇒ Object



20
21
22
23
24
25
# File 'lib/weekend_warrior.rb', line 20

def self.weekday(original_time = Time.now)
  weekdays = 1..5
  result = original_time
  result += 1.day until result >= original_time && weekdays.member?(result.wday)
  result
end

Instance Method Details

#go_back_by_weekdays(num_days) ⇒ Object



45
46
47
48
49
50
51
52
53
54
# File 'lib/weekend_warrior.rb', line 45

def go_back_by_weekdays(num_days)
  
  past = self.dup
  
  num_days.times do
    past = self.class.previous_weekday(past)
  end
  
  past
end

#go_forward_by_weekdays(num_days) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/weekend_warrior.rb', line 34

def go_forward_by_weekdays(num_days)
  
  future = self.dup
  
  num_days.times do
    future = self.class.next_weekday(future)
  end
  
  future
end