class Proxy::Ansible::Exception

Taken from Foreman core, this class creates an error code for any exception

Public Class Methods

calculate_error_code(classname, message) click to toggle source
# File lib/smart_proxy_ansible/exception.rb, line 12
def self.calculate_error_code(classname, message)
  return 'ERF00-0000' if classname.nil? || message.nil?
  basename = classname.split(':').last
  class_hash = Zlib.crc32(basename) % 100
  msg_hash = Zlib.crc32(message) % 10_000
  format 'ERF%02d-%04d', class_hash, msg_hash
end
new(message, *params) click to toggle source
# File lib/smart_proxy_ansible/exception.rb, line 7
def initialize(message, *params)
  @message = message
  @params = params
end

Public Instance Methods

code() click to toggle source
# File lib/smart_proxy_ansible/exception.rb, line 20
def code
  @code ||= Exception.calculate_error_code(self.class.name, @message)
  @code
end
message() click to toggle source
# File lib/smart_proxy_ansible/exception.rb, line 25
def message
  # make sure it works without gettext too
  translated_msg = @message % @params
  "#{code} [#{self.class.name}]: #{translated_msg}"
end
to_s() click to toggle source
# File lib/smart_proxy_ansible/exception.rb, line 31
def to_s
  message
end