class OrderedWeek

Constants

VERSION
WEEK_DAYS

Public Class Methods

new(includes_date=nil) click to toggle source
# File lib/ordered_week.rb, line 20
def initialize includes_date=nil
  includes_date = includes_date.is_a?(Date) ? includes_date : Date.today
  @days = build_days(includes_date)
end
start_day() click to toggle source
# File lib/ordered_week.rb, line 11
def self.start_day
  @@start_day
end
start_day=(day) click to toggle source
# File lib/ordered_week.rb, line 15
def self.start_day= day
  return false unless WEEK_DAYS.include?(day)
  @@start_day = day 
end

Public Instance Methods

each() { |d| ... } click to toggle source
# File lib/ordered_week.rb, line 33
def each &block
  @days.each {|d| yield d}
end
end_date() click to toggle source
# File lib/ordered_week.rb, line 41
def end_date
  @days.last
end
inspect() click to toggle source
# File lib/ordered_week.rb, line 25
def inspect
  @days.map {|d| d.strftime("%F")}.inspect.gsub('"','')
end
start_date() click to toggle source
# File lib/ordered_week.rb, line 37
def start_date
  @days.first
end
to_a() click to toggle source
# File lib/ordered_week.rb, line 29
def to_a
  @days
end

Private Instance Methods

build_days(date) click to toggle source
# File lib/ordered_week.rb, line 53
def build_days(date)
  while not date_is_start_of_week(date)
    date -= 1
  end
  (date..date+6).to_a
end
date_is_start_of_week(date) click to toggle source
# File lib/ordered_week.rb, line 60
def date_is_start_of_week date
  date.send( (@@start_day.to_s + ??).to_sym )
end
start_day_index() click to toggle source
# File lib/ordered_week.rb, line 64
def start_day_index
  WEEK_DAYS.index(@@start_day)
end