| Class | Results::LifFile |
| In: |
lib/results/lif_file.rb
|
| Parent: | Object |
FinishLynx .lif results file for import. Not that any sane person uses it.
| event | [R] | |
| race | [R] | |
| table | [R] |
# File lib/results/lif_file.rb, line 6 6: def initialize(path, event) 7: @event = event 8: @table = Tabular::Table.read(path, :as => :csv, :columns => ResultsFile::COLUMN_MAP) 9: end
# File lib/results/lif_file.rb, line 39
39: def create_result(row)
40: result = race.results.build(row.to_hash)
41: result.updated_by = event.name
42: result.place = row.index + 1
43:
44: result.cleanup
45: result.save!
46: end
For ResultFile compatibility
# File lib/results/lif_file.rb, line 49
49: def custom_columns
50: []
51: end
# File lib/results/lif_file.rb, line 25
25: def find_or_create_race(row)
26: return true if race
27:
28: category = Category.find_or_create_by_name(row[:category_name])
29: @race = event.races.detect { |race| race.category == category }
30: if race
31: race.results.clear
32: else
33: @race = event.races.build(:category => category)
34: end
35: race.result_columns = table.columns.map { |column| column.key.to_s }
36: race.save!
37: end
# File lib/results/lif_file.rb, line 11
11: def import
12: Event.transaction do
13: event.disable_notification!
14:
15: table.rows.each do |row|
16: find_or_create_race row
17: create_result row
18: end
19:
20: event.enable_notification!
21: CombinedTimeTrialResults.create_or_destroy_for!(event)
22: end
23: end