Class: AeBankDays::BankDayHelper

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

Class Method Summary collapse

Class Method Details

.bank_day?(day) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
# File 'lib/ae_bank_days/bank_day_helper.rb', line 8

def bank_day?(day)
  date = day.to_date
  weekday?(date) && Holidays.on(date, :federalreservebanks, :observed).empty?
end

.current_or_next_banking_day(day) ⇒ Object



41
42
43
44
45
# File 'lib/ae_bank_days/bank_day_helper.rb', line 41

def current_or_next_banking_day(day)
  date = day.to_date
  date += 1 until bank_day?(date)
  date
end

.current_or_previous_banking_day(day) ⇒ Object



35
36
37
38
39
# File 'lib/ae_bank_days/bank_day_helper.rb', line 35

def current_or_previous_banking_day(day)
  date = day.to_date
  date -= 1 until bank_day?(date)
  date
end

.next_banking_day(date, number_of_days: 0) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/ae_bank_days/bank_day_helper.rb', line 13

def next_banking_day(date, number_of_days: 0)
  banking_day = date.to_date
  banking_day += 1
  number_of_days.times do
    banking_day = current_or_next_banking_day(banking_day)
    banking_day += 1
  end

  current_or_next_banking_day(banking_day)
end

.previous_banking_day(date, number_of_days: 0) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/ae_bank_days/bank_day_helper.rb', line 24

def previous_banking_day(date, number_of_days: 0)
  banking_day = date.to_date
  banking_day -= 1
  number_of_days.times do
    banking_day = current_or_previous_banking_day(banking_day)
    banking_day -= 1
  end

  current_or_previous_banking_day(banking_day)
end