Class UpcomingEvents::Base
In: app/models/upcoming_events/base.rb
Parent: Array

Methods

[]   cutoff_date   dates   disciplines_for   empty?   new  

Attributes

date  [R] 
discipline  [R] 
disciplines  [R] 
weeks  [R] 

Public Class methods

Date = start date. Defaults to today

[Source]

    # File app/models/upcoming_events/base.rb, line 12
12:     def initialize(date, weeks, discipline)
13:       @date = date || Date.today
14:       @discipline = discipline
15:       @disciplines = disciplines_for(discipline)
16:       @weeks = weeks || 2
17:     end

Public Instance methods

Get Discipline by name

[Source]

    # File app/models/upcoming_events/base.rb, line 58
58:     def [](discipline_name)
59:       disciplines.detect { |discipline| discipline.name == discipline_name }
60:     end

Set date to nearest Monday

[Source]

    # File app/models/upcoming_events/base.rb, line 34
34:     def cutoff_date
35:       case date.wday
36:       when 0
37:         date + (weeks.to_i * 7)
38:       when 1
39:         date + (weeks.to_i * 7) - 1
40:       when 2
41:         date + (weeks.to_i * 7) - 2
42:       when 3
43:         date + (weeks.to_i * 7) - 3
44:       when 4
45:         date + (weeks.to_i * 7) - 4
46:       when 5
47:         date + (weeks.to_i * 7) - 5
48:       when 6
49:         date + (weeks.to_i * 7) + 1
50:       end
51:     end

[Source]

    # File app/models/upcoming_events/base.rb, line 29
29:     def dates
30:       @dates ||= (date.to_date..cutoff_date.to_date)
31:     end

By default, we‘ll search "all" disciplines (Road and Mountain Bike include other disciplines), but if discipline is present, we will only search that one

[Source]

    # File app/models/upcoming_events/base.rb, line 21
21:     def disciplines_for(discipline)
22:       if discipline
23:         [Discipline[discipline]]
24:       else
25:         [Discipline[:road], Discipline[:mountain_bike], Discipline[:bmx], Discipline[:track], Discipline[:cyclocross]].compact
26:       end
27:     end

[Source]

    # File app/models/upcoming_events/base.rb, line 53
53:     def empty?
54:       disciplines.all? { |discipline| discipline.upcoming_events.empty? && discipline.upcoming_weekly_series.empty? }
55:     end

[Validate]