class GBWorkDay::WorkWeek
Attributes
free_days[R]
free_days_per_week[R]
work_days[R]
work_days_per_week[R]
Public Class Methods
current()
click to toggle source
# File lib/gb_work_day/work_week.rb, line 48 def current Thread.current[:working_week] ||= self.new end
current=(new_week)
click to toggle source
# File lib/gb_work_day/work_week.rb, line 52 def current=(new_week) Thread.current[:working_week] = new_week if WorkWeek === new_week end
new(work_days = 7)
click to toggle source
@param work_days
[#to_i] Amount of working days in a week. Default value is 7.
# File lib/gb_work_day/work_week.rb, line 6 def initialize(work_days = 7) work_days = work_days.to_i week_start = 1 raise ArgumentError, 'Work days have to be between 0 and 7!' unless work_days >= 0 && work_days <= 7 @work_days_per_week = work_days @week_start = week_start @free_days_per_week = 7 - @work_days_per_week @work_days = [] @work_days_per_week.times do day = week_start % 7 @work_days << (day != 0 ? day : 7) week_start += 1 end @work_days.sort! @free_days = (1..7).to_a - @work_days end
Public Instance Methods
free_day?(day)
click to toggle source
Check if given day is a work day @param day [Time, Date]
# File lib/gb_work_day/work_week.rb, line 33 def free_day?(day) week_day = day.wday week_day = 7 if week_day == 0 free_days.include? week_day end
work_day?(day)
click to toggle source
Check if given day is a work day @param day [Time, Date]
# File lib/gb_work_day/work_week.rb, line 25 def work_day?(day) week_day = day.wday week_day = 7 if week_day == 0 work_days.include? week_day end