module AWS::Core::LazyErrorClasses

def self.extended base

Other tags:
    Private: -
def self.extended base
  unless base.const_defined?(:GRAMMAR)
    base.const_set(:GRAMMAR, BASE_ERROR_GRAMMAR)
  end

  mutex = Mutex.new
  MetaUtils.extend_method(base, :const_missing_mutex) { mutex }
end

def const_missing constant

Returns:
  • (nil) -

Parameters:
  • constant (String, Symbol) --
def const_missing constant
  const_missing_mutex.synchronize do
    const_set(constant, Class.new(Errors::Base) { extend LazyErrorClasses })
  end
end

def error_class code

Returns:
  • (Class) - Returns the error class defiend by the error code.

Parameters:
  • code (String) -- An AWS error code.
def error_class code
  module_eval("#{self}::#{code.gsub('.Range','Range').gsub(".","::")}")
end