| Class | Discipline |
| In: |
app/models/discipline.rb
|
| Parent: | ActiveRecord::Base |
Road, track, criterium, time trial … Cached. Call reset to clear cache.
| NONE | = | Discipline.new(:name => "", :id => nil).freeze unless defined?(NONE) |
Look up Discipline by name or alias. Caches Disciplines in memory
# 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
# File app/models/discipline.rb, line 24
24: def Discipline.find_all_bar
25: Discipline.find(:all, :conditions => ["bar = true"])
26: end
# 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.
# File app/models/discipline.rb, line 33
33: def Discipline.find_for_numbers
34: Discipline.find(:all, :conditions => 'numbers=true')
35: end
# File app/models/discipline.rb, line 28
28: def Discipline.find_via_alias(name)
29: Discipline[name]
30: end
# 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
# File app/models/discipline.rb, line 51
51: def Discipline.reset
52: @@all_aliases = nil
53: end
# 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.
# File app/models/discipline.rb, line 71
71: def pretty_name
72: name.gsub('_', " ").gsub(/\b\w/) {|s| s.upcase }
73: end