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
|
module Cucumber
module Wire
class RequestHandler
def initialize(connection)
@connection = connection
@message = underscore(self.class.name.split('::').last)
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
|