def method_missing(name, *args, &block)
      klass = nil
      ActiveSupport::Notifications.instrument('esi.client.detect_call') do
        class_name = method_to_class_name name
        begin
          klass = Esi::Calls.const_get(class_name)
        rescue NameError
          super(name, *args, &block)
        end
      end
      cached_response(klass, *args, &block)
    end
def method_missing(name, *args, &block)
      klass = nil
      ActiveSupport::Notifications.instrument('esi.client.detect_call') do
        class_name = method_to_class_name name
        begin
          klass = Esi::Calls.const_get(class_name)
        rescue NameError
          super(name, *args, &block)
        end
      end
      cached_response(klass, *args, &block)
    end
Intercept Esi::Client method_missing and attempt to call an Esi::Request
  with an Esi::Calls

 @param name [Symbol|String] name the name of the method called
 @param args [Array] *args the arguments to call the method with
 @param block [#block] &block the block to pass to the underlying method
 @raise [NameError] If the Esi::Calls does not exist
 @return [Esi::Response] the response given for the call