Sha256: cff2ecbe695121518d996a894eb2cb7cbb3ca3c5aa34cf2eac998948c869ca0f

Contents?: true

Size: 850 Bytes

Versions: 9

Compression:

Stored size: 850 Bytes

Contents

class Cranium::ImportStrategy::Base

  attr_reader :import_definition



  def initialize(import_definition)
    @import_definition = import_definition
  end



  def import
    external_table = Cranium::ExternalTable.new Cranium.application.sources[import_definition.name], Cranium::Database.connection

    external_table.create
    number_of_items_imported = import_from external_table.name
    external_table.destroy

    number_of_items_imported
  end



  protected

  def import_from(external_table)
    raise StandardError "Not implemented"
  end



  def database
    Cranium::Database.connection
  end



  def target_table
    import_definition.into
  end



  def source_fields
    import_definition.field_associations.keys.map &:to_sym
  end



  def target_fields
    import_definition.field_associations.values.map &:to_sym
  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cranium-0.5 lib/cranium/import_strategy/base.rb
cranium-0.4.3 lib/cranium/import_strategy/base.rb
cranium-0.4.2 lib/cranium/import_strategy/base.rb
cranium-0.4.1 lib/cranium/import_strategy/base.rb
cranium-0.4 lib/cranium/import_strategy/base.rb
cranium-0.3.1 lib/cranium/import_strategy/base.rb
cranium-0.3.0 lib/cranium/import_strategy/base.rb
cranium-0.2.1 lib/cranium/import_strategy/base.rb
cranium-0.2.0 lib/cranium/import_strategy/base.rb