gauge-ruby 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/code_parser.rb +1 -1
- data/lib/configuration.rb +30 -9
- data/lib/executor.rb +3 -2
- data/lib/gauge.rb +1 -2
- data/lib/gauge_runtime.rb +7 -53
- data/lib/gauge_screenshot.rb +13 -3
- data/lib/log.rb +29 -11
- data/lib/messages_pb.rb +272 -238
- data/lib/processors/cache_file_processor.rb +1 -6
- data/lib/processors/datastore_init_processor.rb +19 -14
- data/lib/processors/execute_step_request_processor.rb +5 -5
- data/lib/processors/execution_handler.rb +18 -19
- data/lib/processors/execution_hook_processors.rb +16 -40
- data/lib/processors/implementation_file_list_processor.rb +1 -6
- data/lib/processors/implementation_glob_pattern_processor.rb +1 -10
- data/lib/processors/refactor_step_request_processor.rb +1 -7
- data/lib/processors/step_name_request_processor.rb +2 -7
- data/lib/processors/step_names_request_processor.rb +1 -7
- data/lib/processors/step_positions_request_processor.rb +2 -7
- data/lib/processors/step_validation_request_processor.rb +1 -8
- data/lib/processors/stub_implementation_processor.rb +1 -6
- data/lib/service_handlers.rb +122 -0
- data/lib/{lsp_pb.rb → services_pb.rb} +2 -3
- data/lib/services_services_pb.rb +165 -0
- data/lib/spec_pb.rb +233 -198
- data/lib/static_loader.rb +2 -2
- data/lib/util.rb +24 -14
- metadata +48 -34
- data/lib/api_pb.rb +0 -182
- data/lib/connector.rb +0 -46
- data/lib/lsp_server.rb +0 -78
- data/lib/lsp_services_pb.rb +0 -51
- data/lib/message_processor.rb +0 -61
@@ -22,12 +22,7 @@ require_relative '../method_cache'
|
|
22
22
|
module Gauge
|
23
23
|
# @api private
|
24
24
|
module Processors
|
25
|
-
def process_cache_file_request(
|
26
|
-
cache_file_response(message.cacheFileRequest)
|
27
|
-
nil
|
28
|
-
end
|
29
|
-
|
30
|
-
def cache_file_response(request)
|
25
|
+
def process_cache_file_request(request)
|
31
26
|
f = request.filePath
|
32
27
|
status = Messages::CacheFileRequest::FileStatus.resolve(request.status)
|
33
28
|
if (status == Messages::CacheFileRequest::FileStatus::CHANGED) || (status == Messages::CacheFileRequest::FileStatus::OPENED)
|
@@ -15,22 +15,27 @@
|
|
15
15
|
# You should have received a copy of the GNU General Public License
|
16
16
|
# along with Gauge-Ruby. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
|
-
require_relative
|
18
|
+
require_relative "../datastore"
|
19
19
|
|
20
20
|
module Gauge
|
21
|
-
# @api private
|
22
21
|
module Processors
|
23
|
-
def
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
22
|
+
def process_suite_data_store_init_request(_request)
|
23
|
+
DataStoreFactory.suite_datastore.clear
|
24
|
+
datastore_response
|
25
|
+
end
|
26
|
+
|
27
|
+
def process_spec_data_store_init_request(_request)
|
28
|
+
DataStoreFactory.spec_datastore.clear
|
29
|
+
datastore_response
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_scenario_data_store_init_request(_request)
|
33
|
+
DataStoreFactory.scenario_datastore.clear
|
34
|
+
datastore_response
|
35
|
+
end
|
36
|
+
|
37
|
+
def datastore_response
|
38
|
+
Messages::ExecutionStatusResponse.new(:executionResult => Messages::ProtoExecutionResult.new(:failed => false, :executionTime => 0))
|
34
39
|
end
|
35
40
|
end
|
36
|
-
end
|
41
|
+
end
|
@@ -21,17 +21,17 @@ module Gauge
|
|
21
21
|
module Processors
|
22
22
|
include ExecutionHandler
|
23
23
|
|
24
|
-
def process_execute_step_request(
|
25
|
-
step_text =
|
26
|
-
parameters =
|
24
|
+
def process_execute_step_request(request)
|
25
|
+
step_text = request.parsedStepText
|
26
|
+
parameters = request.parameters
|
27
27
|
args = create_param_values parameters
|
28
28
|
start_time= Time.now
|
29
29
|
begin
|
30
30
|
Executor.execute_step step_text, args
|
31
31
|
rescue Exception => e
|
32
|
-
return handle_failure
|
32
|
+
return handle_failure e, time_elapsed_since(start_time), MethodCache.recoverable?(step_text)
|
33
33
|
end
|
34
|
-
handle_pass
|
34
|
+
handle_pass time_elapsed_since(start_time)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -16,34 +16,35 @@
|
|
16
16
|
# along with Gauge-Ruby. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
18
|
require 'os'
|
19
|
+
require_relative '../table'
|
19
20
|
|
20
21
|
module Gauge
|
21
22
|
module Processors
|
22
23
|
# @api private
|
23
24
|
module ExecutionHandler
|
24
|
-
def handle_hooks_execution(hooks,
|
25
|
+
def handle_hooks_execution(hooks, currentExecutionInfo, should_filter=true)
|
25
26
|
start_time= Time.now
|
26
27
|
execution_error = Executor.execute_hooks(hooks, currentExecutionInfo, should_filter)
|
27
28
|
if execution_error == nil
|
28
|
-
return handle_pass
|
29
|
+
return handle_pass time_elapsed_since(start_time)
|
29
30
|
else
|
30
|
-
return handle_failure
|
31
|
+
return handle_failure execution_error, time_elapsed_since(start_time), false
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
34
|
-
def handle_pass(
|
35
|
+
def handle_pass(execution_time)
|
35
36
|
execution_status_response = Messages::ExecutionStatusResponse.new(:executionResult => Messages::ProtoExecutionResult.new(:failed => false, :executionTime => execution_time))
|
36
|
-
execution_status_response.executionResult.
|
37
|
+
execution_status_response.executionResult.screenshotFiles += Gauge::GaugeScreenshot.instance.pending_screenshot
|
37
38
|
execution_status_response.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
38
|
-
|
39
|
+
execution_status_response
|
39
40
|
end
|
40
41
|
|
41
42
|
def get_filepath(stacktrace)
|
42
43
|
toptrace = stacktrace.split("\n").first
|
43
|
-
|
44
|
+
MethodCache.relative_filepath toptrace
|
44
45
|
end
|
45
46
|
|
46
|
-
def handle_failure(
|
47
|
+
def handle_failure(exception, execution_time, recoverable)
|
47
48
|
project_dir = File.basename(Dir.getwd)
|
48
49
|
stacktrace = exception.backtrace.select {|x| x.match(project_dir) && !x.match(File.join(project_dir, "vendor"))}.join("\n")+"\n"
|
49
50
|
filepath = get_filepath(stacktrace)
|
@@ -56,15 +57,13 @@ module Gauge
|
|
56
57
|
:errorMessage => exception.message,
|
57
58
|
:stackTrace => code_snippet + stacktrace,
|
58
59
|
:executionTime => execution_time))
|
59
|
-
|
60
|
-
if
|
61
|
-
execution_status_response.executionResult.
|
62
|
-
execution_status_response.executionResult.failureScreenshot = screenshot
|
60
|
+
screenshot_file = take_screenshot
|
61
|
+
if screenshot_file
|
62
|
+
execution_status_response.executionResult.failureScreenshotFile = screenshot_file
|
63
63
|
end
|
64
|
-
execution_status_response.executionResult.
|
64
|
+
execution_status_response.executionResult.screenshotFiles += Gauge::GaugeScreenshot.instance.pending_screenshot
|
65
65
|
execution_status_response.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
66
|
-
|
67
|
-
:messageId => message.messageId, :executionStatusResponse => execution_status_response)
|
66
|
+
execution_status_response
|
68
67
|
end
|
69
68
|
|
70
69
|
def get_code_snippet(filename, number)
|
@@ -73,12 +72,12 @@ module Gauge
|
|
73
72
|
number.to_s + " | " + line.strip + "\n\n"
|
74
73
|
end
|
75
74
|
|
76
|
-
def
|
77
|
-
return nil if (ENV['screenshot_on_failure'] || "").downcase == "false" || (which("gauge_screenshot").nil? && !Configuration.instance.custom_screengrabber)
|
75
|
+
def take_screenshot
|
76
|
+
return nil if (ENV['screenshot_on_failure'] || "").downcase == "false" || (which("gauge_screenshot").nil? && !Configuration.instance.custom_screengrabber?)
|
78
77
|
begin
|
79
|
-
|
78
|
+
GaugeScreenshot.instance.capture_to_file
|
80
79
|
rescue Exception => e
|
81
|
-
|
80
|
+
GaugeLog.error e
|
82
81
|
return nil
|
83
82
|
end
|
84
83
|
end
|
@@ -25,63 +25,39 @@ module Gauge
|
|
25
25
|
module Processors
|
26
26
|
include ExecutionHandler
|
27
27
|
|
28
|
-
def process_execution_start_request(
|
28
|
+
def process_execution_start_request(request)
|
29
29
|
Gauge::MethodCache.clear
|
30
30
|
Executor.load_steps(Util.get_step_implementation_dir)
|
31
|
-
|
32
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
33
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
34
|
-
return response
|
31
|
+
handle_hooks_execution(MethodCache.get_before_suite_hooks,request.currentExecutionInfo,false)
|
35
32
|
end
|
36
33
|
|
37
|
-
def process_execution_end_request(
|
38
|
-
|
39
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
40
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
41
|
-
return response
|
34
|
+
def process_execution_end_request(request)
|
35
|
+
handle_hooks_execution(MethodCache.get_after_suite_hooks, request.currentExecutionInfo, false)
|
42
36
|
end
|
43
37
|
|
44
|
-
def process_spec_execution_start_request(
|
45
|
-
|
46
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
47
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
48
|
-
return response
|
38
|
+
def process_spec_execution_start_request(request)
|
39
|
+
handle_hooks_execution(MethodCache.get_before_spec_hooks,request.currentExecutionInfo)
|
49
40
|
end
|
50
41
|
|
51
|
-
def process_spec_execution_end_request(
|
52
|
-
|
53
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
54
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
55
|
-
return response
|
42
|
+
def process_spec_execution_end_request(request)
|
43
|
+
handle_hooks_execution(MethodCache.get_after_spec_hooks,request.currentExecutionInfo)
|
56
44
|
end
|
57
45
|
|
58
|
-
def process_scenario_execution_start_request(
|
59
|
-
|
60
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
61
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
62
|
-
return response
|
46
|
+
def process_scenario_execution_start_request(request)
|
47
|
+
handle_hooks_execution(MethodCache.get_before_scenario_hooks,request.currentExecutionInfo)
|
63
48
|
end
|
64
49
|
|
65
50
|
|
66
|
-
def process_scenario_execution_end_request(
|
67
|
-
|
68
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
69
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
70
|
-
return response
|
51
|
+
def process_scenario_execution_end_request(request)
|
52
|
+
handle_hooks_execution(MethodCache.get_after_scenario_hooks,request.currentExecutionInfo)
|
71
53
|
end
|
72
54
|
|
73
|
-
def process_step_execution_start_request(
|
74
|
-
|
75
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
76
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
77
|
-
return response
|
55
|
+
def process_step_execution_start_request(request)
|
56
|
+
handle_hooks_execution(MethodCache.get_before_step_hooks,request.currentExecutionInfo)
|
78
57
|
end
|
79
58
|
|
80
|
-
def process_step_execution_end_request(
|
81
|
-
|
82
|
-
response.executionStatusResponse.executionResult.screenshots += Gauge::GaugeScreenshot.instance.pending_screenshot
|
83
|
-
response.executionStatusResponse.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
84
|
-
return response
|
59
|
+
def process_step_execution_end_request(request)
|
60
|
+
handle_hooks_execution(MethodCache.get_after_step_hooks,request.currentExecutionInfo)
|
85
61
|
end
|
86
62
|
end
|
87
63
|
end
|
@@ -19,12 +19,7 @@ require_relative '../util'
|
|
19
19
|
|
20
20
|
module Gauge
|
21
21
|
module Processors
|
22
|
-
def process_implementation_file_list_request(
|
23
|
-
r = implementation_files()
|
24
|
-
Messages::Message.new(:messageType => :ImplementationFileListResponse, :messageId => message.messageId, :implementationFileListResponse => r)
|
25
|
-
end
|
26
|
-
|
27
|
-
def implementation_files()
|
22
|
+
def process_implementation_file_list_request(_request)
|
28
23
|
implPath = Util.get_step_implementation_dir
|
29
24
|
fileList = Dir["#{implPath}/**/*.rb"]
|
30
25
|
Messages::ImplementationFileListResponse.new(:implementationFilePaths => fileList)
|
@@ -19,16 +19,7 @@ require_relative '../util'
|
|
19
19
|
|
20
20
|
module Gauge
|
21
21
|
module Processors
|
22
|
-
def process_implementation_glob_pattern_request(
|
23
|
-
r = implementation_glob_pattern_response
|
24
|
-
Messages::Message.new(
|
25
|
-
messageType: Messages::Message::MessageType::ImplementationFileGlobPatternResponse,
|
26
|
-
messageId: message.messageId,
|
27
|
-
implementationFileGlobPatternResponse: r
|
28
|
-
)
|
29
|
-
end
|
30
|
-
|
31
|
-
def implementation_glob_pattern_response
|
22
|
+
def process_implementation_glob_pattern_request(_request)
|
32
23
|
implPath = Util.get_step_implementation_dir
|
33
24
|
Messages::ImplementationFileGlobPatternResponse.new(globPatterns: ["#{implPath}/**/*.rb"])
|
34
25
|
end
|
@@ -19,13 +19,7 @@ require_relative '../code_parser'
|
|
19
19
|
|
20
20
|
module Gauge
|
21
21
|
module Processors
|
22
|
-
def
|
23
|
-
request = message.refactorRequest
|
24
|
-
response = refactor_response(request)
|
25
|
-
Messages::Message.new(messageType: :RefactorResponse, messageId: message.messageId, refactorResponse: response)
|
26
|
-
end
|
27
|
-
|
28
|
-
def refactor_response(request)
|
22
|
+
def process_refactor_request(request)
|
29
23
|
response = Messages::RefactorResponse.new(success: true)
|
30
24
|
begin
|
31
25
|
step_info = get_step request.oldStepValue.stepValue
|
@@ -17,15 +17,10 @@
|
|
17
17
|
|
18
18
|
module Gauge
|
19
19
|
module Processors
|
20
|
-
def process_step_name_request(
|
21
|
-
r = step_name_response(message.stepNameRequest)
|
22
|
-
Messages::Message.new(messageType: :StepNameResponse, messageId: message.messageId, stepNameResponse: r)
|
23
|
-
end
|
24
|
-
|
25
|
-
def step_name_response(request)
|
20
|
+
def process_step_name_request(request)
|
26
21
|
step_value = request.stepValue
|
27
22
|
unless MethodCache.valid_step?(step_value)
|
28
|
-
return Messages::StepNameResponse.new(isStepPresent: false, stepName: [
|
23
|
+
return Messages::StepNameResponse.new(isStepPresent: false, stepName: [""], hasAlias: false, fileName: "", span: nil)
|
29
24
|
end
|
30
25
|
step_text = MethodCache.get_step_text(step_value)
|
31
26
|
has_alias = MethodCache.has_alias?(step_text)
|
@@ -17,13 +17,7 @@
|
|
17
17
|
|
18
18
|
module Gauge
|
19
19
|
module Processors
|
20
|
-
def process_step_names_request(
|
21
|
-
r = step_names_response
|
22
|
-
Messages::Message.new(messageType: :StepNamesResponse,
|
23
|
-
messageId: message.messageId, stepNamesResponse: r)
|
24
|
-
end
|
25
|
-
|
26
|
-
def step_names_response
|
20
|
+
def process_step_names_request(_request)
|
27
21
|
Messages::StepNamesResponse.new(steps: MethodCache.all_steps)
|
28
22
|
end
|
29
23
|
end
|
@@ -17,12 +17,7 @@
|
|
17
17
|
|
18
18
|
module Gauge
|
19
19
|
module Processors
|
20
|
-
def process_step_positions_request(
|
21
|
-
r = step_positions(message.stepPositionsRequest)
|
22
|
-
Messages::Message.new(:messageType => :StepPositionsResponse, :messageId => message.messageId, :stepPositionsResponse => r)
|
23
|
-
end
|
24
|
-
|
25
|
-
def step_positions(request)
|
20
|
+
def process_step_positions_request(request)
|
26
21
|
file = request.filePath
|
27
22
|
positions = MethodCache.step_positions(file)
|
28
23
|
p = create_step_position_messages(positions)
|
@@ -36,4 +31,4 @@ module Gauge
|
|
36
31
|
end
|
37
32
|
end
|
38
33
|
end
|
39
|
-
end
|
34
|
+
end
|
@@ -17,14 +17,7 @@
|
|
17
17
|
|
18
18
|
module Gauge
|
19
19
|
module Processors
|
20
|
-
def process_step_validation_request(
|
21
|
-
request = message.stepValidateRequest
|
22
|
-
Messages::Message.new(messageType: :StepValidateResponse,
|
23
|
-
messageId: message.messageId,
|
24
|
-
stepValidateResponse: step_validate_response(request))
|
25
|
-
end
|
26
|
-
|
27
|
-
def step_validate_response(request)
|
20
|
+
def process_step_validation_request(request)
|
28
21
|
response = Messages::StepValidateResponse.new(isValid: true)
|
29
22
|
if !MethodCache.valid_step? request.stepText
|
30
23
|
suggestion = request.stepValue.stepValue.empty? ? '' : create_suggestion(request.stepValue)
|
@@ -19,12 +19,7 @@ require_relative '../../lib/util'
|
|
19
19
|
|
20
20
|
module Gauge
|
21
21
|
module Processors
|
22
|
-
def process_stub_implementation_code_request(
|
23
|
-
file_diff = implement_stub_response(message.stubImplementationCodeRequest)
|
24
|
-
Messages::Message.new(messageType: :FileDiff, messageId: message.messageId, fileDiff: file_diff)
|
25
|
-
end
|
26
|
-
|
27
|
-
def implement_stub_response(request)
|
22
|
+
def process_stub_implementation_code_request(request)
|
28
23
|
codes = request.codes
|
29
24
|
file_path = request.implementationFilePath
|
30
25
|
content = ''
|
@@ -0,0 +1,122 @@
|
|
1
|
+
# Copyright 2018 ThoughtWorks, Inc.
|
2
|
+
|
3
|
+
# This file is part of Gauge-Ruby.
|
4
|
+
|
5
|
+
# Gauge-Ruby is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
|
10
|
+
# Gauge-Ruby is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with Gauge-Ruby. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require_relative "services_services_pb"
|
19
|
+
Dir[File.join(File.dirname(__FILE__), "processors/*.rb")].each { |file| require file }
|
20
|
+
|
21
|
+
module Gauge
|
22
|
+
class ExecutionHandler < Messages::Runner::Service
|
23
|
+
include Processors
|
24
|
+
|
25
|
+
def initialize(server)
|
26
|
+
@server = server
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize_suite_data_store(request, _call)
|
30
|
+
process_suite_data_store_init_request(request)
|
31
|
+
end
|
32
|
+
|
33
|
+
def initialize_spec_data_store(request, _call)
|
34
|
+
process_spec_data_store_init_request(request)
|
35
|
+
end
|
36
|
+
|
37
|
+
def initialize_scenario_data_store(request, _call)
|
38
|
+
process_scenario_data_store_init_request(request)
|
39
|
+
end
|
40
|
+
|
41
|
+
def start_execution(request, _call)
|
42
|
+
process_execution_start_request(request)
|
43
|
+
end
|
44
|
+
|
45
|
+
def finish_execution(request, _call)
|
46
|
+
process_execution_end_request(request)
|
47
|
+
end
|
48
|
+
|
49
|
+
def start_spec_execution(request, _call)
|
50
|
+
process_spec_execution_start_request(request)
|
51
|
+
end
|
52
|
+
|
53
|
+
def finish_spec_execution(request, _call)
|
54
|
+
process_spec_execution_end_request(request)
|
55
|
+
end
|
56
|
+
|
57
|
+
def start_scenario_execution(request, _call)
|
58
|
+
process_scenario_execution_start_request(request)
|
59
|
+
end
|
60
|
+
|
61
|
+
def finish_scenario_execution(request, _call)
|
62
|
+
process_scenario_execution_end_request(request)
|
63
|
+
end
|
64
|
+
|
65
|
+
def start_step_execution(request, _call)
|
66
|
+
process_step_execution_start_request(request)
|
67
|
+
end
|
68
|
+
|
69
|
+
def finish_step_execution(request, _call)
|
70
|
+
process_step_execution_end_request(request)
|
71
|
+
end
|
72
|
+
|
73
|
+
def execute_step(request, _call)
|
74
|
+
process_execute_step_request(request)
|
75
|
+
end
|
76
|
+
|
77
|
+
def get_step_names(request, _call)
|
78
|
+
process_step_names_request(request)
|
79
|
+
end
|
80
|
+
|
81
|
+
def cache_file(request, _call)
|
82
|
+
process_cache_file_request(request)
|
83
|
+
end
|
84
|
+
|
85
|
+
def get_step_positions(request, _call)
|
86
|
+
process_step_positions_request(request)
|
87
|
+
end
|
88
|
+
|
89
|
+
def get_implementation_files(request, _call)
|
90
|
+
process_implementation_file_list_request(request)
|
91
|
+
end
|
92
|
+
|
93
|
+
def implement_stub(request, _call)
|
94
|
+
process_stub_implementation_code_request(request)
|
95
|
+
end
|
96
|
+
|
97
|
+
def refactor(request, _call)
|
98
|
+
process_refactor_request(request)
|
99
|
+
end
|
100
|
+
|
101
|
+
def get_step_name(request, _call)
|
102
|
+
process_step_name_request(request)
|
103
|
+
end
|
104
|
+
|
105
|
+
def get_glob_patterns(request, _call)
|
106
|
+
process_implementation_glob_pattern_request(request)
|
107
|
+
end
|
108
|
+
|
109
|
+
def validate_step(request, _call)
|
110
|
+
process_step_validation_request(request)
|
111
|
+
end
|
112
|
+
|
113
|
+
def kill(_request, _call)
|
114
|
+
Thread.new do
|
115
|
+
sleep 0.1
|
116
|
+
@server.stop
|
117
|
+
exit(0)
|
118
|
+
end.run
|
119
|
+
Messages::Empty.new
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|