Class Discipline
In: app/models/discipline.rb
Parent: ActiveRecord::Base

Road, track, criterium, time trial … Cached. Call reset to clear cache.

Methods

Included Modules

UpcomingEvents::DisciplineExtensions

Constants

NONE = Discipline.new(:name => "", :id => nil).freeze unless defined?(NONE)

Public Class methods

Look up Discipline by name or alias. Caches Disciplines in memory

[Source]

    # File app/models/discipline.rb, line 13
13:   def Discipline.[](name)
14:     return nil unless name
15:     load_aliases unless @@all_aliases
16:     if name.is_a?(Symbol)
17:       @@all_aliases[name]
18:     else
19:       return nil if name.blank?
20:       @@all_aliases[name.underscore.gsub(' ', '_').to_sym]
21:     end
22:   end

[Source]

    # File app/models/discipline.rb, line 24
24:   def Discipline.find_all_bar
25:     Discipline.find(:all, :conditions => ["bar = true"])
26:   end

[Source]

    # File app/models/discipline.rb, line 55
55:   def Discipline.find_all_names
56:     [''] + Discipline.find(:all).collect {|discipline| discipline.name}
57:   end

All Disciplines that are used for numbers. Configured in the database.

[Source]

    # File app/models/discipline.rb, line 33
33:   def Discipline.find_for_numbers
34:     Discipline.find(:all, :conditions => 'numbers=true')
35:   end

[Source]

    # File app/models/discipline.rb, line 28
28:   def Discipline.find_via_alias(name)
29:     Discipline[name]
30:   end

[Source]

    # File app/models/discipline.rb, line 37
37:   def Discipline.load_aliases
38:     @@all_aliases = {}
39:     results = connection.select_all(
40:       "SELECT discipline_id, alias FROM discipline_aliases"
41:     )
42:     for result in results
43:       @@all_aliases[result["alias"].underscore.gsub(' ', '_').to_sym] = Discipline.find(result["discipline_id"].to_i)
44:     end
45:     for discipline in Discipline.find(:all)
46:       @@all_aliases[discipline.name.gsub(' ', '_').underscore.to_sym] = discipline
47:     end
48:   end

Clear out cached @@aliases

[Source]

    # File app/models/discipline.rb, line 51
51:   def Discipline.reset
52:     @@all_aliases = nil
53:   end

Public Instance methods

[Source]

    # File app/models/discipline.rb, line 79
79:   def <=>(other)
80:     name <=> other.name
81:   end

[Source]

    # File app/models/discipline.rb, line 59
59:   def names
60:     case name
61:     when "Road"
62:       [nil, "", 'Circuit', "Criterium", "Road", "Time Trial", "Singlespeed", "Tour"]
63:     when "Mountain Bike"
64:       ['Downhill', 'Mountain Bike', 'Super D', "Short Track"]
65:     else
66:       [name]
67:     end
68:   end

Deprecated. Should use standard Discipline names.

[Source]

    # File app/models/discipline.rb, line 71
71:   def pretty_name
72:     name.gsub('_', " ").gsub(/\b\w/) {|s| s.upcase }
73:   end

[Source]

    # File app/models/discipline.rb, line 75
75:   def to_param
76:     @param || @param = name.underscore.gsub(' ', '_')
77:   end

[Source]

    # File app/models/discipline.rb, line 83
83:   def to_s
84:     "<#{self.class} #{id} #{name}>"
85:   end

[Validate]