1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
# frozen_string_literal: true
module Cucumber
module Wire
class RequestHandler
def initialize(connection, registry = nil)
@connection = connection
@message = underscore(self.class.name.split('::').last)
@registry = registry
end
def execute(request_params = nil)
@connection.call_remote(self, @message, request_params)
end
def handle_fail(params)
raise @connection.exception(params)
end
def handle_success(params); end
private
# Props to Rails
def underscore(camel_cased_word)
camel_cased_word
.to_s
.gsub('::', '/')
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
.tr('-', '_')
.downcase
end
end
end
end
|