Class: Lexicon::Common::Production::DatasourceLoader

Inherits:
Object
  • Object
show all
Includes:
Mixin::LoggerAware, Mixin::SchemaNamer
Defined in:
lib/lexicon/common/production/datasource_loader.rb

Instance Attribute Summary

Attributes included from Mixin::LoggerAware

#logger

Instance Method Summary collapse

Methods included from Mixin::LoggerAware

#log, #log_error

Constructor Details

#initialize(shell:, database_factory:, file_loader:, database_url:, table_locker:, psql:) ⇒ DatasourceLoader

Returns a new instance of DatasourceLoader.

Parameters:



18
19
20
21
22
23
24
25
# File 'lib/lexicon/common/production/datasource_loader.rb', line 18

def initialize(shell:, database_factory:, file_loader:, database_url:, table_locker:, psql:)
  @shell = shell
  @database_factory = database_factory
  @file_loader = file_loader
  @database_url = database_url
  @table_locker = table_locker
  @psql = psql
end

Instance Method Details

#load_package(package, only: nil, without: []) ⇒ Object

Parameters:

  • package (Package::Package)
  • only (Array<String>, nil) (defaults to: nil)

    If nil, all datasets are loaded. If present, only listed datasets are loaded. Structures are ALWAYS loaded

  • without (Array<String>) (defaults to: [])


33
34
35
36
37
38
39
40
41
42
# File 'lib/lexicon/common/production/datasource_loader.rb', line 33

def load_package(package, only: nil, without: [])
  case package.schema_version
  when 1
    load_v1(package, only: only, without: without)
  when 2
    load_v2(package, only: only, without: without)
  else
    log("Schema version #{package.schema_version} is not supported")
  end
end