class Userlist::Rails::Importer

Attributes

config[R]

Public Class Methods

new(config = {}) click to toggle source
# File lib/userlist/rails/importer.rb, line 4
def initialize(config = {})
  config[:push_strategy] ||= :direct
  @config = Userlist.config.merge(config)
end

Public Instance Methods

import(model, &block) click to toggle source
# File lib/userlist/rails/importer.rb, line 9
def import(model, &block)
  find_each(model) do |record|
    print "Pushing #{model.name} #{record.id}..."
    instance_exec(record, &block)
    print " ✔︎\n"
  end
end

Private Instance Methods

find_each(model, &block) click to toggle source
# File lib/userlist/rails/importer.rb, line 25
def find_each(model, &block)
  if model.respond_to?(:find_each)
    model.find_each(&block)
  elsif model.respond_to?(:each)
    model.each(&block)
  else
    raise "Cannot iterate over #{model} because it doesn't implement .find_each, nor .each"
  end
end
push() click to toggle source
# File lib/userlist/rails/importer.rb, line 21
def push
  @push ||= Userlist::Push.new(config)
end