Class: Clerq::Services::LoadAssembly

Inherits:
Service
  • Object
show all
Defined in:
lib/clerq/services/load_assembly.rb

Overview

The service returns assembly and prints progress in console

Instance Method Summary collapse

Methods inherited from Service

call

Instance Method Details

#callObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/clerq/services/load_assembly.rb', line 9

def call
  memo = {}
  on_parse_callback = lambda do |src|
    puts "Reading '#{src}'..."
    memo[src] = 0
  end
  on_error_callback = lambda do |err|
    puts "\t#{err}"
    memo[memo.keys.last] += 1
  end

  puts "Loading repository..."
  assemble = Clerq.assemble(
    on_parse: on_parse_callback,
    on_error: on_error_callback)

  if memo.empty?
    puts "This repository is empty"
  else
    errors_count = memo.values.inject(0, &:+)
    message = [].tap do |m|
      m << "#{nos(memo.size, 'file')} loaded"
      m << "#{nos(errors_count, 'error')} detected"
    end.join(', ')
    puts message
  end
  
  assemble
end