class NdTransmission::Base

Attributes

chunk_size[RW]
dest[RW]
origin[RW]

Public Class Methods

new(config) click to toggle source
# File lib/nd_transmission/base.rb, line 5
def initialize config
  self.chunk_size = config.delete(:chunk_size) || 1
  self.origin, self.dest = config.keys.first, config.values.first
end

Public Instance Methods

in_chunks() { |shiftwhile any?| ... } click to toggle source
# File lib/nd_transmission/base.rb, line 16
def in_chunks
  return to_enum(__callee__) unless block_given?

  yield origins.shift(chunk_size) while origins.any?
end
origins() click to toggle source
# File lib/nd_transmission/base.rb, line 22
def origins
  @origins ||= origin.to_transmit
end
transmit() click to toggle source
# File lib/nd_transmission/base.rb, line 10
def transmit
  in_chunks do |chunk|
    dest.receive chunk
  end
end