class Kamome::Loader

Public Class Methods

new(config:) click to toggle source
# File lib/kamome/loader.rb, line 9
def initialize(config:)
  @config = config
end

Public Instance Methods

call(operation:, &block) click to toggle source

@params [Operation] Kamome::Operation @yield [model, lineno] Any logic you want to execute

Don't pass `-> { break }`, use `-> { throw :break }

@return [Array] csv digest

# File lib/kamome/loader.rb, line 17
def call(operation:, &block)
  operation.urls.map do |url|
    csv_path = download(url)
    call_csv_handler(operation, csv_path, &block)
  end
end

Private Instance Methods

call_csv_handler(operation, csv_path, &block) click to toggle source
# File lib/kamome/loader.rb, line 34
def call_csv_handler(operation, csv_path, &block)
  catch(:break) do
    ::Kamome::CsvHandler.new(operation).call(csv_path, &block)
  end
  ::Digest::SHA256.file(csv_path).to_s
ensure
  csv_path.delete if @config.cleanup
end
download(url) click to toggle source
# File lib/kamome/loader.rb, line 26
def download(url)
  downloader.run(url: url)
end
downloader() click to toggle source
# File lib/kamome/loader.rb, line 30
def downloader
  @downloader ||= ::Kamome::Downloader.new(@config)
end