class Pull::Values

Constants

DEFAULT_ABORT_PROC

Attributes

array[R]
on_abort[R]

Public Class Methods

new(array, on_abort = DEFAULT_ABORT_PROC) click to toggle source
# File lib/pull/source/values.rb, line 9
def initialize(array, on_abort = DEFAULT_ABORT_PROC)
  array = objectify(array) unless array.kind_of?(Array)

  @array = array
  @index = 0
  @on_abort = on_abort
end

Public Instance Methods

call() click to toggle source
# File lib/pull/source/values.rb, line 17
def call
  -> (finish, callback) {
    if finish
      on_abort.()
      return nil
    end

    return false if !array[@index]

    callback.(array[@index])
    @index += 1
    return true
  }
end

Private Instance Methods

objectify(object) click to toggle source
# File lib/pull/source/values.rb, line 36
def objectify(object)
  if object.kind_of?(Hash)
    object.map { |k, v| v }
  else
    object.pretty_print_instance_variables.inject([]) do |coll, iv|
      coll << object.instance_variable_get(iv)
    end
  end
end