Module: StagingTable
- Defined in:
- lib/staging_table.rb,
lib/staging_table/errors.rb,
lib/staging_table/session.rb,
lib/staging_table/version.rb,
lib/staging_table/adapters/base.rb,
lib/staging_table/bulk_inserter.rb,
lib/staging_table/configuration.rb,
lib/staging_table/model_factory.rb,
lib/staging_table/adapters/mysql.rb,
lib/staging_table/adapters/sqlite.rb,
lib/staging_table/instrumentation.rb,
lib/staging_table/transfer_result.rb,
lib/staging_table/adapters/postgresql.rb,
lib/staging_table/transfer_strategies/insert.rb,
lib/staging_table/transfer_strategies/upsert.rb
Defined Under Namespace
Modules: Adapters, Instrumentation, TransferStrategies Classes: AdapterError, BulkInserter, Configuration, ConfigurationError, Error, ModelFactory, RecordError, Session, TableError, TransferError, TransferResult
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
- .configuration ⇒ Object
- .configure {|configuration| ... } ⇒ Object
-
.stage(source_model, **options) {|session| ... } ⇒ TransferResult, Session
Stage data for bulk import into a model’s table.
Class Method Details
.configuration ⇒ Object
21 22 23 |
# File 'lib/staging_table.rb', line 21 def configuration @configuration ||= Configuration.new end |
.configure {|configuration| ... } ⇒ Object
25 26 27 |
# File 'lib/staging_table.rb', line 25 def configure yield(configuration) end |
.stage(source_model, **options) {|session| ... } ⇒ TransferResult, Session
Stage data for bulk import into a model’s table.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/staging_table.rb', line 45 def stage(source_model, **, &block) session = Session.new(source_model, **) if block payload = { source_model: source_model, source_table: source_model.table_name, options: .except(*Session::CALLBACK_OPTIONS) } Instrumentation.instrument(:stage, payload) do |instrumentation_payload| session.create_table yield(session) result = session.transfer instrumentation_payload[:result] = result result ensure session.drop_table end else session.create_table session end end |