class Grouik::Helpers::Process

Helper providing outputs (mostly useful in a CLI/Rake context)

Main methods are “display_errors“ and “display_status“

Public Instance Methods

display_errors(process) click to toggle source

Display loading errors

@param [Grouik::Process] process @return [self]

# File src/lib/grouik/helpers/process.rb, line 17
def display_errors(process)
  process.errors.each do |_k, struct|
    Grouik.message do |m|
      m.stream  = STDERR
      m.type    = 'error'
      m.content = ('%s:%s: %s' % [
                     struct.source,
                     struct.line,
                     struct.message,
                   ])
    end
  end
end
display_status(process) click to toggle source

Display (on “STDERR“) loader related statistics

@param [Grouik::Process] process @return [self]

# File src/lib/grouik/helpers/process.rb, line 35
def display_status(process)
  message  = '%s: %s files; %s iterations; %s errors (%.4f) [%s]'
  loader   = process.loader

  Grouik.message do |m|
    m.stream  = STDERR
    m.type    = 'status_%s' % status(process)
    m.content = (message %
                 [
                   status(process).to_s.capitalize,
                   loader.loadables.size,
                   loader.attempts,
                   loader.errors.size,
                   loader.stats ? loader.stats.real : 0,
                   format_filepath(process.output)
                 ])
  end
  self
end
status(process) click to toggle source

Denote status from process

@return [Symbol]

# File src/lib/grouik/helpers/process.rb, line 58
def status(process)
  statuses = { true => :success, false => :failure }

  statuses.fetch(process.success?)
end

Protected Instance Methods

format_filepath(filepath) click to toggle source

Format a filepath with a “require“ format

@param [Pathname|String|Object] filepath

# File src/lib/grouik/helpers/process.rb, line 69
def format_filepath(filepath)
  filepath = filepath.to_s

  $LOAD_PATH.each do |path|
    regexp = %r{^#{Regexp.quote(path.to_s)}\/}
    if regexp.match(filepath)
      filepath.gsub!(regexp, '').gsub!(/\.rb$/, '')
      break
    end
  end

  filepath
end