Class: Morpheus::Logging::DarkPrinter

Inherits:
Object
  • Object
show all
Includes:
Term::ANSIColor
Defined in:
lib/morpheus/logging.rb

Overview

An IO class for printing debugging info This is used as a proxy for ::RestClient.log printing right now.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(io, color = nil, is_dark = true) ⇒ DarkPrinter

Returns a new instance of DarkPrinter.



132
133
134
135
136
# File 'lib/morpheus/logging.rb', line 132

def initialize(io, color=nil, is_dark=true)
  @io = io # || $stdout
  @color = color # || cyan
  @is_dark = is_dark
end

Instance Attribute Details

#colorObject

String

ansi color code for output. Default is dark



113
114
115
# File 'lib/morpheus/logging.rb', line 113

def color
  @color
end

#ioObject

IO

to write to



110
111
112
# File 'lib/morpheus/logging.rb', line 110

def io
  @io
end

Class Method Details

.<<(*messages) ⇒ Object



128
129
130
# File 'lib/morpheus/logging.rb', line 128

def self.<<(*messages)
  instance.<<(*messages)
end

.instanceObject

DarkPrinter with io STDOUT



116
117
118
# File 'lib/morpheus/logging.rb', line 116

def self.instance
  @instance ||= self.new(STDOUT, nil, true)
end


120
121
122
# File 'lib/morpheus/logging.rb', line 120

def self.print(*messages)
  instance.print(*messages)
end

.puts(*messages) ⇒ Object



124
125
126
# File 'lib/morpheus/logging.rb', line 124

def self.puts(*messages)
  instance.puts(*messages)
end

Instance Method Details

#<<(*messages) ⇒ Object



176
177
178
# File 'lib/morpheus/logging.rb', line 176

def <<(*messages)
  print(*messages)
end


154
155
156
157
158
159
160
161
162
163
# File 'lib/morpheus/logging.rb', line 154

def print(*messages)
  if @io
    messages = messages.flatten.collect {|it| scrub_message(it) }
    print_with_color do 
      messages.each do |msg|
        @io.print msg
      end
    end
  end
end


142
143
144
145
146
147
148
149
150
151
152
# File 'lib/morpheus/logging.rb', line 142

def print_with_color(&block)
  if Term::ANSIColor.coloring?
    @io.print Term::ANSIColor.reset
    @io.print @color if @color
    @io.print Term::ANSIColor.dark if @is_dark
  end
  yield
  if Term::ANSIColor.coloring?
    @io.print Term::ANSIColor.reset
  end
end

#puts(*messages) ⇒ Object



165
166
167
168
169
170
171
172
173
174
# File 'lib/morpheus/logging.rb', line 165

def puts(*messages)
  if @io
    messages = messages.flatten.collect {|it| scrub_message(it) }
    print_with_color do 
      messages.each do |msg|
        @io.puts msg
      end
    end
  end
end

#scrub_message(msg) ⇒ Object



138
139
140
# File 'lib/morpheus/logging.rb', line 138

def scrub_message(msg)
  Morpheus::Logging.scrub_message(msg)
end