Class: DriveTime::SpreadsheetsConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/drive_time/converters/spreadsheets_converter.rb

Instance Method Summary collapse

Constructor Details

#initializeSpreadsheetsConverter

Returns a new instance of SpreadsheetsConverter.



5
6
7
8
9
10
# File 'lib/drive_time/converters/spreadsheets_converter.rb', line 5

def initialize()
  @dependency_graph = DeepEnd::Graph.new
  @loader = DriveTime::Loader.new
  @model_store = ModelStore.new(DriveTime::log_level)
  @class_name_map = ClassNameMap.new
end

Instance Method Details

#load(mappings_path) ⇒ Object

Load mappings YML file



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/drive_time/converters/spreadsheets_converter.rb', line 13

def load(mappings_path)
  @mappings = ActiveSupport::HashWithIndifferentAccess.new(YAML::load File.open(mappings_path))
  @namespace = @mappings[:namespace]
  spreadsheets = download_spreadsheets

  worksheets = []
  spreadsheets.each do |spreadsheet|
    # Create a map containing any class mappings
    build_class_map spreadsheet
    # Download and combine worksheets into single Array
    downloaded_worksheets = download_worksheets(spreadsheet)
    worksheets.concat downloaded_worksheets
  end

  worksheets = order_worksheets_by_dependencies( worksheets )

  # Convert the worksheets
  worksheets.each do |worksheet|
    WorksheetConverter.new(@model_store, @class_name_map, @loader, @namespace).convert(worksheet)
  end

  @model_store.save_all
  Logger.log_as_header "Conversion Complete. Woot Woot."
end