Sha256: f8100db84cbd49a2ff52b1f63b3e0f74cf301429abaa991f4380600316f10549

Contents?: true

Size: 690 Bytes

Versions: 3

Compression:

Stored size: 690 Bytes

Contents

require "hub_link/insert"

module HubLink
  class Importer
    def self.run(*args)
      new(*args).run
    end

    def initialize(repo:, since:, resources:)
      @repo = repo.to_s
      @since = since
      @resources = resources
    end

    def run
      stream.in_batches do |batch|
        resources.each do |source, target|
          import batch.fetch(source), to: target
        end
      end
    end

    private

      attr_reader :repo, :since, :resources

      def stream
        @_stream ||= Stream.new(repo, since: since)
      end

      def import(records, to:)
        records.each do |row|
          Insert.new(row: row, target: to).run
        end
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hub_link-0.19.0 lib/hub_link/importer.rb
hub_link-0.18.0 lib/hub_link/importer.rb
hub_link-0.15.0 lib/hub_link/importer.rb