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