Sha256: 0a2598913d62d523b6a549766bab0af233e1e3bfacbeded3d277ac49e4b643e3
Contents?: true
Size: 983 Bytes
Versions: 4
Compression:
Stored size: 983 Bytes
Contents
# frozen_string_literal: true module Importeur class Extractor def initialize(data_source, cursor, cursor_key) @data_source = data_source @cursor = cursor @cursor_key = cursor_key end def call return unless has_new_data? Enumerator.new do |y| feed.each do |item| y << item end store_new_dataset_id clear_current_dataset_id end end private attr_reader :cursor, :cursor_key, :data_source def has_new_data? last_known_id = cursor.read(cursor_key) current_dataset_id != last_known_id end def store_new_dataset_id cursor.write(cursor_key, current_dataset_id) end def clear_current_dataset_id @current_dataset_id = nil end def current_dataset_id @current_dataset_id ||= dataset_id end def dataset_id data_source.dataset_unique_id end def feed @feed ||= data_source.items end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
importeur-0.3.0 | lib/importeur/extractor.rb |
importeur-0.2.1 | lib/importeur/extractor.rb |
importeur-0.2.0 | lib/importeur/extractor.rb |
importeur-0.1.1 | lib/importeur/extractor.rb |