class Chef::Knife::ChopUI

Attributes

logger[R]

Public Class Methods

new(logger, config) click to toggle source
Calls superclass method
# File lib/chef/knife/chop/ui.rb, line 29
def initialize(logger, config)
  super($stdout, $stderr, $stdin, config)
  @logger = logger
  #define_ui_methods()
end

Public Instance Methods

err(message) click to toggle source
# File lib/chef/knife/chop/ui.rb, line 63
def err(message)
  error(message)
end
error(message) click to toggle source

Print an error message

# File lib/chef/knife/chop/ui.rb, line 73
def error(message)
  msg(message)
end
fatal(message) click to toggle source

Print a message describing a fatal error.

# File lib/chef/knife/chop/ui.rb, line 78
def fatal(message)
  msg(message)
end
info(message) click to toggle source

def define_ui_methods()

class << self
  ::Logging::LEVELS.each{|name,level|
      code = <<-CODE
      def #{name}(str)
        msg(str)
      end
      CODE
      self.class.class_eval(code,__FILE__,__LINE__)
  }
end

end

# File lib/chef/knife/chop/ui.rb, line 55
def info(message)
  msg(message)
end
method_missing(name, *args, &block) click to toggle source
# File lib/chef/knife/chop/ui.rb, line 82
def method_missing(name, *args, &block)
  msg = "#{self.class.name}: Method missing: #{name}"
  @logger.fatal(msg)
  raise ChopInternalError.new(msg)
end
msg(message) click to toggle source

def define_log_methods( ui )

# File lib/chef/knife/chop/ui.rb, line 36
def msg(message)
  caller = Kernel.caller[0]
  match = caller.match(%r/([-\.\/\(\)\w]+):(\d+)(?::in `(\w+)')?/o)
  name = shifted(match[3])
  @logger.send(name, message)
end
shifted(name) click to toggle source
# File lib/chef/knife/chop/ui.rb, line 88
def shifted(name)
  name = 'info' unless ::Logging::LEVELS.has_key?(name)
  num = ::Logging::LEVELS[name]+1
  case name
  when 'todo'
    'error'
  when 'err'
    'error'
  # when 'info'
  #   'debug'
  when 'debug'
    'trace'
  else
    name
  end
end
step(message) click to toggle source
# File lib/chef/knife/chop/ui.rb, line 59
def step(message)
  msg(message)
end
warn(message) click to toggle source

Print a warning message

# File lib/chef/knife/chop/ui.rb, line 68
def warn(message)
  msg(message)
end