class MoonDate

Constants

DAY_NAME
MONTH_NAME

Public Instance Methods

current_week() click to toggle source
# File lib/moon_date.rb, line 14
def current_week
  naive_cweek(self) - naive_cweek(MoonDate.new(self.year, self.month, 1)) + 1
end
day_name() click to toggle source
# File lib/moon_date.rb, line 18
def day_name
  DAY_NAME[self.cwday - 1]
end
month_days(padded=false) click to toggle source
# File lib/moon_date.rb, line 26
def month_days(padded=false)
  days = (0..31).filter { |day| Date.valid_date?(self.year, self.month, day) }.map do |day|
    MoonDate.new(self.year, self.month, day)
  end

  padded ? pad_days(days) : days
end
month_name() click to toggle source
# File lib/moon_date.rb, line 22
def month_name
  MONTH_NAME[self.month - 1]
end
moon_phase() click to toggle source
# File lib/moon_date.rb, line 34
def moon_phase
  MoonCalc.new(self).phase
end
week_days(padded=false) click to toggle source
# File lib/moon_date.rb, line 9
def week_days(padded=false)
  week_days = month_days.filter { |day| day.cweek == self.cweek }
  padded ? pad_days(week_days) : week_days 
end

Private Instance Methods

naive_cweek(date) click to toggle source
# File lib/moon_date.rb, line 47
def naive_cweek(date)
  date.month == 1 && date.cweek == 53 ? 1 : date.month_days.first.cweek == 53 ? date.cweek + 1 : date.cweek
end
pad_days(days) click to toggle source
# File lib/moon_date.rb, line 40
def pad_days(days)
  front_padding = days.first.cwday - 1
  end_padding = 7 - days.last.cwday 

  Array.new(front_padding, nil) + days + Array.new(end_padding, nil)
end