Class Results::LifFile
In: lib/results/lif_file.rb
Parent: Object

FinishLynx .lif results file for import. Not that any sane person uses it.

Methods

Attributes

event  [R] 
race  [R] 
table  [R] 

Public Class methods

[Source]

   # 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

Public Instance methods

[Source]

    # 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

[Source]

    # File lib/results/lif_file.rb, line 49
49:     def custom_columns
50:       []
51:     end

[Source]

    # 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

[Source]

    # 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

[Validate]