class AeBankDays::BankDayHelper

Public Class Methods

bank_day?(day) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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

Private Class Methods

weekday?(day) click to toggle source
# File lib/ae_bank_days/bank_day_helper.rb, line 49
def weekday?(day)
  (1..5).include?(day.wday)
end