class Scruber::Core::Extensions::Loop

Helper for reading dictionaries. @example Adding dictionary and reading it

Scruber.run :sample do
  add_dictionary :zip_codes_usa, Scruber.root.join('dict', 'zip_codes_usa.csv'), :csv
  seed do
    loop :zip_codes_usa, state: 'NY' do |row|
      get 'https://example.com/by_zip/'+row['zip'].to_s
    end
  end
end

@author Ivan Goncharov

Public Class Methods

_registered_dictionaries() click to toggle source
# File lib/scruber/core/extensions/loop.rb, line 65
def _registered_dictionaries
  @registered_dictionaries ||= {}
end
add_dictionary(name, file_path, file_type) click to toggle source
# File lib/scruber/core/extensions/loop.rb, line 58
def add_dictionary(name, file_path, file_type)
  _registered_dictionaries[name.to_sym] = {
    file_path: file_path,
    file_type: file_type
  }
end
loop(dictionary, options={}) { |obj| ... } click to toggle source
# File lib/scruber/core/extensions/loop.rb, line 48
def loop(dictionary, options={})
  if _registered_dictionaries.keys.include?(dictionary.to_sym)
    Scruber::Helpers::DictionaryReader.read(_registered_dictionaries[dictionary.to_sym][:file_path], _registered_dictionaries[dictionary.to_sym][:file_type], options) do |obj|
      yield obj
    end
  else
    raise ArgumentError, "dictionary not registered, available dictionaries #{_registered_dictionaries.keys.inspect}"
  end
end