class ConfigKit::Data::Loader

Attributes

batch_size[R]
cursor[R]
files[R]

Public Class Methods

err(message) click to toggle source
# File lib/config_kit/data/loader.rb, line 18
def self.err(message)
  STDERR.puts message
end
info(message) click to toggle source
# File lib/config_kit/data/loader.rb, line 14
def self.info(message)
  STDOUT.puts message
end
inherited(subclass) click to toggle source
# File lib/config_kit/data/loader.rb, line 25
def self.inherited(subclass)
  @loaders << subclass
end
load(app, from, uri_kls, env, version, &block) click to toggle source
# File lib/config_kit/data/loader.rb, line 32
def self.load(app, from, uri_kls, env, version, &block)
  @loader_names = @loaders.map{ |l| l.loader}

  @uri_kls, @env, @app, @version = uri_kls, env, app, version

  loader = from


  if loader.nil?
    ConfigKit.logger.error "from empty source with #{@uri_kls.to_s}"
  elsif !@loader_names.include?(loader)
    ConfigKit.logger.error "Unrecognize loader: #{loader} for #{@uri}"
  else
    loader_class = @loaders.find{ |c| c.loader == loader}
    ConfigKit.logger.debug "#{loader_class.loader} is loading env(#{@env}) app(#{app}) data(#{@version}) from #{uri_kls.to_s}"
    loader_class.new(@uri_kls, @env, @app, @version).run(&block)
    ConfigKit.logger.debug "#{loader_class.loader} is loaded env(#{@env}) app(#{app}) data(#{@version}) from #{uri_kls.to_s}"
  end
rescue => e
  raise ConfigKit::Data::Loader::LoaderFailure.new e.message
end
new(batch_size=10) click to toggle source
# File lib/config_kit/data/loader.rb, line 55
def initialize(batch_size=10)
  @files = []
  @batch_size = batch_size
  @current_files = []
  @cursor = 0
  @files = retrieve_files
end

Public Instance Methods

file_count() click to toggle source
# File lib/config_kit/data/loader.rb, line 63
def file_count
  @files.count
end
finish?() click to toggle source
# File lib/config_kit/data/loader.rb, line 82
def finish?
  @cursor >= file_count
end
next_batch() click to toggle source
# File lib/config_kit/data/loader.rb, line 67
def next_batch
  if finish?
    @current_files = []
    @cursor = file_count
    return @cursor
  end
  _next_cursor = next_cursor
  @current_files = @files[@cursor.._next_cursor - 1]
  @cursor = _next_cursor
end
next_cursor() click to toggle source
# File lib/config_kit/data/loader.rb, line 78
def next_cursor
  @cursor + @batch_size > file_count ? file_count : (@cursor + @batch_size)
end
retrieve_files() click to toggle source
# File lib/config_kit/data/loader.rb, line 86
def retrieve_files
  raise NotImplementedError
end