Class: Grouik::Output::Messager

Inherits:
Object
  • Object
show all
Defined in:
src/lib/grouik/output/messager.rb

Overview

Provide a wrapper over Rainbow

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stream = STDOUT, content = nil) ⇒ Messager

Returns a new instance of Messager.



14
15
16
17
# File 'src/lib/grouik/output/messager.rb', line 14

def initialize(stream = STDOUT, content = nil)
  @stream = stream
  self.content = content
end

Instance Attribute Details

#contentObject

Returns the value of attribute content.



12
13
14
# File 'src/lib/grouik/output/messager.rb', line 12

def content
  @content
end

#streamObject

Returns the value of attribute stream.



11
12
13
# File 'src/lib/grouik/output/messager.rb', line 11

def stream
  @stream
end

Class Method Details

.formatsHash

Defines available formats

Returns:

  • (Hash)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'src/lib/grouik/output/messager.rb', line 40

def formats
  {
    status_success: {
      background: :green,
      color: :black,
    },
    status_failure: {
      background: :red,
      color: :black,
    },
    error: {
      color: :red,
    }
  }
end

.output(stream, type) ⇒ self

Returns:

  • (self)


33
34
35
# File 'src/lib/grouik/output/messager.rb', line 33

def output(stream, type)
  self.new(stream, content).output(type)
end

Instance Method Details

#colorizable?Boolean

Denote output is colorizable (tty?)

Returns:

  • (Boolean)


64
65
66
# File 'src/lib/grouik/output/messager.rb', line 64

def colorizable?
  stream.tty?
end

#format_as(type) ⇒ Rainbow::Presenter, Rainbow::NullPresenter

Parameters:

  • type (Symbol|String)

Returns:

  • (Rainbow::Presenter, Rainbow::NullPresenter)


59
60
61
# File 'src/lib/grouik/output/messager.rb', line 59

def format_as(type)
  colorize(self.class.formats[type.to_sym])
end

#output(type) ⇒ self

TODO:

Catch NoMethodError or similar error

Returns:

  • (self)


25
26
27
28
29
# File 'src/lib/grouik/output/messager.rb', line 25

def output(type)
  stream.puts self.format_as(type)

  self
end