module Workpattern

workpattern.rb - date calculation library that takes into account patterns of working and resting time and is aimed at supporting scheduling applications such as critical path analysis.

Author: Barrie Callender 2011

Documentation: Barrie Callender <barrie@callenb.org>

Constants

DAY

Seconds in a day

DAYNAMES
DEFAULT_BASE_YEAR

default base year for a new workpattern

DEFAULT_SPAN

default span of years for a new Workpattern

DEFAULT_WORKPATTERN_NAME

default name of a new Workpattern

FIRST_DAY_OF_WEEK

first and last day of week

FIRST_TIME_IN_DAY

Earliest or first time in the day

FRIDAY
HOUR

60 minutes in an hour

HOURS_IN_DAY

24 hours in a day

LAST_DAY_OF_WEEK
LAST_TIME_IN_DAY

Latest or last time in the day

MINUTE

60 seconds in a minute

MONDAY
NEXT_DAY
PREVIOUS_DAY

Flags for calculations

RESTING_HOUR

0 minutes in a working hour as binary bits per minute

REST_TYPE

Specifies a resting pattern

SAME_DAY
SATURDAY
SUNDAY

All the days of the week

THURSDAY
TUESDAY
VERSION
WEDNESDAY
WORKING_HOUR

60 minutes in a working hour as binary bit per minute

WORK_TYPE

Specifies a working pattern

Public Class Methods

clear() click to toggle source

Convenience method to delete all Workpatterns.

# File lib/workpattern.rb, line 74
def self.clear
  Workpattern.clear
end
clock(hour, min) click to toggle source

Convenience method to create a Clock object. This can be used for specifying times if you don't want to create a DateTime object

@param [Integer] hour the number of hours. @param [Integer] min the number of minutes @return [Clock] @see Clock

# File lib/workpattern.rb, line 86
def self.clock(hour, min)
  Clock.new(hour, min)
end
delete(name) click to toggle source

Convenience method to delete the named Workpattern

@param [String] name The name of the Workpattern to be deleted.

# File lib/workpattern.rb, line 68
def self.delete(name)
  Workpattern.delete(name)
end
get(name) click to toggle source

Covenience method to obtain an existing Workpattern

@param [String] name The name of the Workpattern to retrieve. @return [Workpattern]

# File lib/workpattern.rb, line 60
def self.get(name)
  Workpattern.get(name)
end
new(name = DEFAULT_WORKPATTERN_NAME, base = DEFAULT_BASE_YEAR, span = DEFAULT_SPAN) click to toggle source

Covenience method to obtain a new Workpattern

A negative span counts back from the base year

@param [String] name Every workpattern has a unique name. @param [Integer] base Workpattern starts on the 1st January of this year. @param [Integer] number of years ending on 31st December. @return [Workpattern] @raise [NameError] creating a Workpattern with a name that already exists

# File lib/workpattern.rb, line 40
def self.new(name = DEFAULT_WORKPATTERN_NAME,
             base = DEFAULT_BASE_YEAR,
             span = DEFAULT_SPAN)
  Workpattern.new(name, base, span)
end
to_a() click to toggle source

Covenience method to obtain an Array of all the known Workpattern objects

@return [Array] all Workpattern objects

# File lib/workpattern.rb, line 51
def self.to_a
  Workpattern.to_a
end