Class: BigShift::Factory

Inherits:
Object
  • Object
show all
Defined in:
lib/bigshift/cli.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Factory

Returns a new instance of Factory.



189
190
191
# File 'lib/bigshift/cli.rb', line 189

def initialize(config)
  @config = config
end

Instance Method Details

#big_query_datasetObject



205
206
207
# File 'lib/bigshift/cli.rb', line 205

def big_query_dataset
  @big_query_dataset ||= BigQuery::Dataset.new(bq_service, gcp_project, @config[:bq_dataset_id], logger: logger)
end

#cleanerObject



209
210
211
# File 'lib/bigshift/cli.rb', line 209

def cleaner
  @cleaner ||= Cleaner.new(s3_resource, cs_service, logger: logger)
end

#cloud_storage_transferObject



197
198
199
# File 'lib/bigshift/cli.rb', line 197

def cloud_storage_transfer
  @cloud_storage_transfer ||= CloudStorageTransfer.new(cs_transfer_service, gcp_project, aws_credentials, logger: logger)
end

#create_unload_manifest(s3_bucket_name, s3_table_prefix) ⇒ Object



224
225
226
# File 'lib/bigshift/cli.rb', line 224

def create_unload_manifest(s3_bucket_name, s3_table_prefix)
  UnloadManifest.new(s3_resource, cs_service, @config[:s3_bucket_name], s3_table_prefix)
end

#loggerObject



220
221
222
# File 'lib/bigshift/cli.rb', line 220

def logger
  @logger ||= Logger.new($stderr)
end

#redshift_table_schemaObject



201
202
203
# File 'lib/bigshift/cli.rb', line 201

def redshift_table_schema
  @redshift_table_schema ||= RedshiftTableSchema.new(@config[:rs_schema_name], @config[:rs_table_name], create_rs_connection)
end

#redshift_unloaderObject



193
194
195
# File 'lib/bigshift/cli.rb', line 193

def redshift_unloader
  @redshift_unloader ||= RedshiftUnloader.new(create_rs_connection, aws_credentials, logger: logger)
end

#s3_resourceObject



213
214
215
216
217
218
# File 'lib/bigshift/cli.rb', line 213

def s3_resource
  @s3_resource ||= Aws::S3::Resource.new(
    region: aws_region,
    credentials: aws_credentials
  )
end