Module: Terjira::CommonPresenter
- Extended by:
- Forwardable
- Included in:
- BaseCLI
- Defined in:
- lib/terjira/presenters/common_presenter.rb
Instance Method Summary collapse
- #dim_none ⇒ Object
- #formatted_date(date_str, date_format = '%c') ⇒ Object
-
#insert_new_line(str, length) ⇒ Object
Insert new line(‘n`) when string display length is longger than length argument.
- #pastel ⇒ Object
- #render(text) ⇒ Object
- #screen_width ⇒ Object
- #username(user) ⇒ Object
Instance Method Details
#dim_none ⇒ Object
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 |
#pastel ⇒ Object
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_width ⇒ Object
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 |