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.

[View source]

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

def initialize(config)
  @config = config
end

Instance Method Details

#big_query_datasetObject

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

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

#redshift_table_schemaObject

[View source]

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

[View source]

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

[View source]

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