class Decidim::Meetings::MeetingMonthCell
def abbr_day_names
def abbr_day_names @abbr_day_names ||= I18n.t("date.abbr_day_names").rotate(first_week_date_rotation) end
def beginning_of_week
def beginning_of_week @beginning_of_week ||= options[:beginning_of_week] || Date.beginning_of_week end
def day_class(date)
def day_class(date) return "is-today" if date == Date.current return if events.exclude?(date) "is-#{date < Date.current ? "past" : "upcoming"}-event" end
def day_names
def day_names @day_names ||= I18n.t("date.day_names").rotate(first_week_date_rotation) end
def events
def events options[:events] || meetings.select { |meeting| meeting.start_time.month == month }.map { |meeting| meeting.start_time.to_date } end
def first_day_of_month?(date)
def first_day_of_month?(date) date.day == 1 end
def first_meeting
def first_meeting @first_meeting ||= meetings.first end
def first_week_date_rotation
def first_week_date_rotation @first_week_date_rotation ||= Date::DAYS_INTO_WEEK[beginning_of_week.to_sym].to_i end
def meetings_in_this_month?
def meetings_in_this_month? meetings.collect(&:start_time).map { |date| date.strftime("%m").to_i }.any? month end
def month_days
def month_days start_date.to_date.all_month end
def month_name
def month_name @month_name ||= I18n.t("date.month_names")[month] end
def show
def show render if meetings_in_this_month? end
def start_date
def start_date options[:start_date] || first_meeting.start_time end
def weeks
def weeks month_days.group_by do |day| (1 - first_week_date_rotation).days.since(day).cweek end.values end