Module: ConceptStringFormatter

Defined in:
lib/asker/formatter/concept_string_formatter.rb

Overview

Define methods to transform Concept into String

Class Method Summary collapse

Class Method Details

.format_neighbors(concept) ⇒ Object



60
61
62
63
64
65
# File 'lib/asker/formatter/concept_string_formatter.rb', line 60

def self.format_neighbors(concept)
  list = concept.neighbors[0..4].map do |i|
    i[:concept].name(:screen) + '(' + i[:value].to_s[0..4] + ')'
  end
  [Rainbow('.neighbors').blue, list.join("\n")]
end

.format_tables(concept) ⇒ Object



53
54
55
56
57
58
# File 'lib/asker/formatter/concept_string_formatter.rb', line 53

def self.format_tables(concept)
  return [] if concept.tables.count.zero?

  list = concept.tables.map(&:to_s)
  [Rainbow('.tables').color(:blue), list.join("\n")]
end

.format_texts(concept) ⇒ Object

rubocop:enable Metrics/AbcSize rubocop:enable Metrics/MethodLength



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/asker/formatter/concept_string_formatter.rb', line 41

def self.format_texts(concept)
  list = []
  concept.texts.each do |i|
    if i.size < 60
      list << i.to_s
      next
    end
    list << i[0...70].to_s + '...'
  end
  [Rainbow('.def(text)').blue, list.join("\n")]
end

.get_tt_rows(concept) ⇒ Object

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/asker/formatter/concept_string_formatter.rb', line 21

def self.get_tt_rows(concept)
  rows = []
  rows << [Rainbow(concept.id.to_s).bright,
           Rainbow(concept.name(:screen)).white.bg(:blue).bright +
           " (lang=#{concept.lang.lang}) "]
  rows << [Rainbow('Filename').blue, concept.filename]
  rows << [Rainbow('Context').blue, concept.context.join(', ').to_s]
  rows << [Rainbow('Tags').blue, concept.tags.join(', ').to_s]
  rows << [Rainbow('Reference to').blue,
           concept.reference_to.join(', ')[0...70].to_s]
  rows << [Rainbow('Referenced by').blue,
           concept.referenced_by.join(', ')[0...70].to_s]
  rows << format_texts(concept)
  rows << [Rainbow('.def(images)').blue, concept.images.size.to_s]
  rows << format_tables(concept)
  rows << format_neighbors(concept)
end

.to_s(concept) ⇒ Object

Formatter Concept to String

Parameters:

Returns:

  • String



12
13
14
15
16
17
# File 'lib/asker/formatter/concept_string_formatter.rb', line 12

def self.to_s(concept)
  tt = Terminal::Table.new
  rows = get_tt_rows(concept)
  rows.each { |row| tt.add_row row }
  "#{tt}\n"
end