hacken-in/hacken-in

View on GitHub
app/models/calendar.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'active_support/core_ext/integer/time'

# Filter, sort and group a list of single events
class Calendar
  # Create a new instance given a start date, region and user
  def initialize(start_date, region, user)
    @user = user
    @events = SingleEvent.list_all(from: start_date, in_next: 4.weeks, for_region: region)
  end

  # The days in the calendar in the right order
  def days
    SingleEventsByDay.new(events_for_user).days
  end

  private

  def events_for_user
    @events.select { |event| event.is_for_user? @user }
  end
end