Module: WebSocket::ExceptionHandler::ClassMethods

Defined in:
lib/websocket/exception_handler.rb

Instance Method Summary collapse

Instance Method Details

#rescue_method(method_name, options = {}) ⇒ Object

Rescue from WebSocket::Error errors.

Parameters:

  • method_name (String)

    Name of method that should be wrapped and rescued

  • options (Hash) (defaults to: {})

    Options for rescue



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/websocket/exception_handler.rb', line 26

def rescue_method(method_name, options = {})
  define_method "#{method_name}_with_rescue" do |*args|
    begin
      send("#{method_name}_without_rescue", *args)
    rescue WebSocket::Error => e
      set_error(e.message.to_sym)
      WebSocket.should_raise ? raise : options[:return]
    end
  end
  alias_method "#{method_name}_without_rescue", method_name
  alias_method method_name, "#{method_name}_with_rescue"
end