Module: Terjira::CommonPresenter

Extended by:
Forwardable
Included in:
BaseCLI
Defined in:
lib/terjira/presenters/common_presenter.rb

Instance Method Summary collapse

Instance Method Details

#dim_noneObject



24
25
26
# File 'lib/terjira/presenters/common_presenter.rb', line 24

def dim_none
  dim('None')
end

#formatted_date(date_str, date_format = '%c') ⇒ Object



28
29
30
31
# File 'lib/terjira/presenters/common_presenter.rb', line 28

def formatted_date(date_str, date_format = '%c')
  return nil if date_str.nil? || date_str.empty?
  Time.parse(date_str).strftime(date_format)
end

#insert_new_line(str, length) ⇒ Object

Insert new line(‘n`) when string display length is longger than length argument



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/terjira/presenters/common_presenter.rb', line 47

def insert_new_line(str, length)
  str.split(/\r\n|\n/).map do |line|
    line.strip!
    if line.display_width < 1
      line
    else
      display_length = pastel.strip(line).display_width
      split_length = (line.length * length / display_length).to_i
      line.scan(/.{1,#{split_length}}/).join("\n") rescue line
    end
  end.join("\n")
end

#pastelObject



20
21
22
# File 'lib/terjira/presenters/common_presenter.rb', line 20

def pastel
  @pastel ||= Pastel.new
end

#render(text) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/terjira/presenters/common_presenter.rb', line 12

def render(text)
  if text.is_a? Array
    puts text.join("\n")
  else
    puts text
  end
end

#screen_widthObject



41
42
43
# File 'lib/terjira/presenters/common_presenter.rb', line 41

def screen_width
  TTY::Screen.width
end

#username(user) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/terjira/presenters/common_presenter.rb', line 33

def username(user)
  if user.nil?
    dim_none
  else
    "#{user.displayName}(#{user.name})"
  end
end