gauge-ruby 0.4.3 → 0.5.4
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 +52 -41
- data/lib/configuration.rb +37 -26
- data/lib/datastore.rb +6 -18
- data/lib/executor.rb +29 -36
- data/lib/gauge.rb +6 -19
- data/lib/gauge_messages.rb +12 -18
- data/lib/gauge_runtime.rb +14 -66
- data/lib/gauge_screenshot.rb +52 -0
- data/lib/log.rb +34 -28
- data/lib/messages_pb.rb +331 -0
- data/lib/method_cache.rb +21 -18
- data/lib/processors/cache_file_processor.rb +20 -31
- data/lib/processors/datastore_init_processor.rb +23 -30
- data/lib/processors/execute_step_request_processor.rb +11 -23
- data/lib/processors/execution_handler.rb +33 -33
- data/lib/processors/execution_hook_processors.rb +23 -36
- data/lib/processors/implementation_file_list_processor.rb +8 -21
- data/lib/processors/implementation_glob_pattern_processor.rb +15 -0
- data/lib/processors/kill_request_processor.rb +5 -17
- data/lib/processors/refactor_step_request_processor.rb +16 -28
- data/lib/processors/step_name_request_processor.rb +15 -30
- data/lib/processors/step_names_request_processor.rb +8 -22
- data/lib/processors/step_positions_request_processor.rb +9 -22
- data/lib/processors/step_validation_request_processor.rb +23 -37
- data/lib/processors/stub_implementation_processor.rb +10 -22
- data/lib/service_handlers.rb +110 -0
- data/lib/services_pb.rb +15 -0
- data/lib/services_services_pb.rb +165 -0
- data/lib/spec_pb.rb +272 -0
- data/lib/static_loader.rb +10 -22
- data/lib/table.rb +5 -17
- data/lib/util.rb +31 -44
- metadata +80 -21
- data/lib/api.pb.rb +0 -273
- data/lib/connector.rb +0 -45
- data/lib/message_processor.rb +0 -59
- data/lib/messages.pb.rb +0 -413
- data/lib/spec.pb.rb +0 -319
data/lib/method_cache.rb
CHANGED
@@ -1,20 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
1
|
+
=begin
|
2
|
+
* Copyright (c) ThoughtWorks, Inc.
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
4
|
+
* See LICENSE.txt in the project root for license information.
|
5
|
+
=end
|
18
6
|
require_relative 'configuration'
|
19
7
|
module Gauge
|
20
8
|
# @api private
|
@@ -79,13 +67,28 @@ module Gauge
|
|
79
67
|
@@steps_map[step_value][:recoverable]
|
80
68
|
end
|
81
69
|
|
70
|
+
def self.relative_filepath(file)
|
71
|
+
project_root = Pathname.new(ENV['GAUGE_PROJECT_ROOT'])
|
72
|
+
filename = Pathname.new(file).relative_path_from(project_root)
|
73
|
+
return project_root.join(filename.to_s.split(":").first)
|
74
|
+
end
|
75
|
+
|
82
76
|
def self.remove_steps(file)
|
83
77
|
@@steps_map.each_pair do |step, info|
|
84
|
-
l = info[:locations].reject { |loc|
|
78
|
+
l = info[:locations].reject { |loc| relative_filepath(loc[:file]).eql? relative_filepath(file) }
|
85
79
|
l.empty? ? @@steps_map.delete(step) : @@steps_map[step][:locations] = l
|
86
80
|
end
|
87
81
|
end
|
88
82
|
|
83
|
+
def self.is_file_cached(file)
|
84
|
+
@@steps_map.each_pair do |step, info|
|
85
|
+
if info[:locations].any? { |loc| relative_filepath(loc[:file]).eql? relative_filepath(file) }
|
86
|
+
return true
|
87
|
+
end
|
88
|
+
end
|
89
|
+
return false
|
90
|
+
end
|
91
|
+
|
89
92
|
def self.multiple_implementation?(step_value)
|
90
93
|
@@steps_map[step_value][:locations].length > 1
|
91
94
|
end
|
@@ -1,43 +1,32 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
=begin
|
3
|
+
* Copyright (c) ThoughtWorks, Inc.
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
5
|
+
* See LICENSE.txt in the project root for license information.
|
6
|
+
=end
|
18
7
|
require_relative '../static_loader'
|
19
8
|
require_relative '../method_cache'
|
20
9
|
module Gauge
|
21
10
|
# @api private
|
22
11
|
module Processors
|
23
|
-
def process_cache_file_request(
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
12
|
+
def process_cache_file_request(request)
|
13
|
+
f = request.filePath
|
14
|
+
status = Messages::CacheFileRequest::FileStatus.resolve(request.status)
|
15
|
+
if (status == Messages::CacheFileRequest::FileStatus::CHANGED) || (status == Messages::CacheFileRequest::FileStatus::OPENED)
|
16
|
+
ast = CodeParser.code_to_ast(request.content)
|
17
|
+
StaticLoader.reload_steps(f, ast)
|
18
|
+
elsif status == Messages::CacheFileRequest::FileStatus::CREATED
|
19
|
+
if !Gauge::MethodCache.is_file_cached f
|
20
|
+
ast = CodeParser.code_to_ast File.read(f)
|
21
|
+
StaticLoader.reload_steps(f, ast)
|
22
|
+
end
|
23
|
+
elsif (status == Messages::CacheFileRequest::FileStatus::CLOSED) && File.file?(f)
|
35
24
|
ast = CodeParser.code_to_ast File.read(f)
|
36
25
|
StaticLoader.reload_steps(f, ast)
|
37
26
|
else
|
38
27
|
StaticLoader.remove_steps(f)
|
39
28
|
end
|
29
|
+
Messages::Empty.new
|
40
30
|
end
|
41
|
-
|
42
31
|
end
|
43
|
-
end
|
32
|
+
end
|
@@ -1,36 +1,29 @@
|
|
1
|
-
|
1
|
+
=begin
|
2
|
+
* Copyright (c) ThoughtWorks, Inc.
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
4
|
+
* See LICENSE.txt in the project root for license information.
|
5
|
+
=end
|
6
|
+
require_relative "../datastore"
|
2
7
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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.
|
8
|
+
module Gauge
|
9
|
+
module Processors
|
10
|
+
def process_suite_data_store_init_request(_request)
|
11
|
+
DataStoreFactory.suite_datastore.clear
|
12
|
+
datastore_response
|
13
|
+
end
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
def process_spec_data_store_init_request(_request)
|
16
|
+
DataStoreFactory.spec_datastore.clear
|
17
|
+
datastore_response
|
18
|
+
end
|
17
19
|
|
18
|
-
|
20
|
+
def process_scenario_data_store_init_request(_request)
|
21
|
+
DataStoreFactory.scenario_datastore.clear
|
22
|
+
datastore_response
|
23
|
+
end
|
19
24
|
|
20
|
-
|
21
|
-
|
22
|
-
module Processors
|
23
|
-
def process_datastore_init(message)
|
24
|
-
case message.messageType
|
25
|
-
when Messages::Message::MessageType::SuiteDataStoreInit
|
26
|
-
DataStoreFactory.suite_datastore.clear
|
27
|
-
when Messages::Message::MessageType::SpecDataStoreInit
|
28
|
-
DataStoreFactory.spec_datastore.clear
|
29
|
-
when Messages::Message::MessageType::ScenarioDataStoreInit
|
30
|
-
DataStoreFactory.scenario_datastore.clear
|
31
|
-
end
|
32
|
-
execution_status_response = Messages::ExecutionStatusResponse.new(:executionResult => Messages::ProtoExecutionResult.new(:failed => false, :executionTime => 0))
|
33
|
-
Messages::Message.new(:messageType => Messages::Message::MessageType::ExecutionStatusResponse, :messageId => message.messageId, :executionStatusResponse => execution_status_response)
|
25
|
+
def datastore_response
|
26
|
+
Messages::ExecutionStatusResponse.new(:executionResult => Messages::ProtoExecutionResult.new(:failed => false, :executionTime => 0))
|
34
27
|
end
|
35
28
|
end
|
36
|
-
end
|
29
|
+
end
|
@@ -1,37 +1,25 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
1
|
+
=begin
|
2
|
+
* Copyright (c) ThoughtWorks, Inc.
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
4
|
+
* See LICENSE.txt in the project root for license information.
|
5
|
+
=end
|
18
6
|
require_relative "execution_handler"
|
19
7
|
|
20
8
|
module Gauge
|
21
9
|
module Processors
|
22
10
|
include ExecutionHandler
|
23
11
|
|
24
|
-
def process_execute_step_request(
|
25
|
-
step_text =
|
26
|
-
parameters =
|
12
|
+
def process_execute_step_request(request)
|
13
|
+
step_text = request.parsedStepText
|
14
|
+
parameters = request.parameters
|
27
15
|
args = create_param_values parameters
|
28
16
|
start_time= Time.now
|
29
17
|
begin
|
30
18
|
Executor.execute_step step_text, args
|
31
19
|
rescue Exception => e
|
32
|
-
return handle_failure
|
20
|
+
return handle_failure e, time_elapsed_since(start_time), MethodCache.recoverable?(step_text)
|
33
21
|
end
|
34
|
-
handle_pass
|
22
|
+
handle_pass time_elapsed_since(start_time)
|
35
23
|
end
|
36
24
|
end
|
37
|
-
end
|
25
|
+
end
|
@@ -1,45 +1,41 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
1
|
+
=begin
|
2
|
+
* Copyright (c) ThoughtWorks, Inc.
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
4
|
+
* See LICENSE.txt in the project root for license information.
|
5
|
+
=end
|
18
6
|
require 'os'
|
7
|
+
require_relative '../table'
|
19
8
|
|
20
9
|
module Gauge
|
21
10
|
module Processors
|
22
11
|
# @api private
|
23
12
|
module ExecutionHandler
|
24
|
-
def handle_hooks_execution(hooks,
|
13
|
+
def handle_hooks_execution(hooks, currentExecutionInfo, should_filter=true)
|
25
14
|
start_time= Time.now
|
26
15
|
execution_error = Executor.execute_hooks(hooks, currentExecutionInfo, should_filter)
|
27
16
|
if execution_error == nil
|
28
|
-
return handle_pass
|
17
|
+
return handle_pass time_elapsed_since(start_time)
|
29
18
|
else
|
30
|
-
return handle_failure
|
19
|
+
return handle_failure execution_error, time_elapsed_since(start_time), false
|
31
20
|
end
|
32
21
|
end
|
33
22
|
|
34
|
-
def handle_pass(
|
23
|
+
def handle_pass(execution_time)
|
35
24
|
execution_status_response = Messages::ExecutionStatusResponse.new(:executionResult => Messages::ProtoExecutionResult.new(:failed => false, :executionTime => execution_time))
|
36
|
-
|
25
|
+
execution_status_response.executionResult.screenshotFiles += Gauge::GaugeScreenshot.instance.pending_screenshot
|
26
|
+
execution_status_response.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
27
|
+
execution_status_response
|
37
28
|
end
|
38
29
|
|
39
|
-
def
|
30
|
+
def get_filepath(stacktrace)
|
31
|
+
toptrace = stacktrace.split("\n").first
|
32
|
+
MethodCache.relative_filepath toptrace
|
33
|
+
end
|
34
|
+
|
35
|
+
def handle_failure(exception, execution_time, recoverable)
|
40
36
|
project_dir = File.basename(Dir.getwd)
|
41
37
|
stacktrace = exception.backtrace.select {|x| x.match(project_dir) && !x.match(File.join(project_dir, "vendor"))}.join("\n")+"\n"
|
42
|
-
filepath =
|
38
|
+
filepath = get_filepath(stacktrace)
|
43
39
|
line_number = stacktrace.split("\n").first.split("/").last.split(":")[1]
|
44
40
|
code_snippet = "\n" + '> ' + get_code_snippet(filepath, line_number.to_i)
|
45
41
|
execution_status_response =
|
@@ -48,10 +44,14 @@ module Gauge
|
|
48
44
|
:recoverableError => recoverable,
|
49
45
|
:errorMessage => exception.message,
|
50
46
|
:stackTrace => code_snippet + stacktrace,
|
51
|
-
:executionTime => execution_time
|
52
|
-
|
53
|
-
|
54
|
-
|
47
|
+
:executionTime => execution_time))
|
48
|
+
screenshot_file = take_screenshot
|
49
|
+
if screenshot_file
|
50
|
+
execution_status_response.executionResult.failureScreenshotFile = screenshot_file
|
51
|
+
end
|
52
|
+
execution_status_response.executionResult.screenshotFiles += Gauge::GaugeScreenshot.instance.pending_screenshot
|
53
|
+
execution_status_response.executionResult.message += Gauge::GaugeMessages.instance.pending_messages
|
54
|
+
execution_status_response
|
55
55
|
end
|
56
56
|
|
57
57
|
def get_code_snippet(filename, number)
|
@@ -60,12 +60,12 @@ module Gauge
|
|
60
60
|
number.to_s + " | " + line.strip + "\n\n"
|
61
61
|
end
|
62
62
|
|
63
|
-
def
|
64
|
-
return nil if (ENV['screenshot_on_failure'] || "").downcase == "false" || which("gauge_screenshot").nil?
|
63
|
+
def take_screenshot
|
64
|
+
return nil if (ENV['screenshot_on_failure'] || "").downcase == "false" || (which("gauge_screenshot").nil? && !Configuration.instance.custom_screengrabber?)
|
65
65
|
begin
|
66
|
-
|
66
|
+
GaugeScreenshot.instance.capture_to_file
|
67
67
|
rescue Exception => e
|
68
|
-
|
68
|
+
GaugeLog.error e
|
69
69
|
return nil
|
70
70
|
end
|
71
71
|
end
|
@@ -77,7 +77,7 @@ module Gauge
|
|
77
77
|
def create_param_values parameters
|
78
78
|
params = []
|
79
79
|
parameters.each do |param|
|
80
|
-
if ((param.parameterType ==
|
80
|
+
if ((param.parameterType == :Table) ||(param.parameterType == :Special_Table))
|
81
81
|
gtable = Gauge::Table.new(param.table)
|
82
82
|
params.push gtable
|
83
83
|
else
|
@@ -1,22 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
1
|
+
=begin
|
2
|
+
* Copyright (c) ThoughtWorks, Inc.
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
4
|
+
* See LICENSE.txt in the project root for license information.
|
5
|
+
=end
|
18
6
|
require_relative "execution_handler"
|
19
7
|
require_relative "../gauge_messages"
|
8
|
+
require_relative "../gauge_screenshot"
|
20
9
|
require_relative "../executor"
|
21
10
|
require_relative "../method_cache"
|
22
11
|
require_relative "../util"
|
@@ -24,41 +13,39 @@ module Gauge
|
|
24
13
|
module Processors
|
25
14
|
include ExecutionHandler
|
26
15
|
|
27
|
-
def process_execution_start_request(
|
16
|
+
def process_execution_start_request(request)
|
28
17
|
Gauge::MethodCache.clear
|
29
18
|
Executor.load_steps(Util.get_step_implementation_dir)
|
30
|
-
handle_hooks_execution(MethodCache.get_before_suite_hooks,
|
19
|
+
handle_hooks_execution(MethodCache.get_before_suite_hooks,request.currentExecutionInfo,false)
|
31
20
|
end
|
32
21
|
|
33
|
-
def process_execution_end_request(
|
34
|
-
handle_hooks_execution(MethodCache.get_after_suite_hooks,
|
22
|
+
def process_execution_end_request(request)
|
23
|
+
handle_hooks_execution(MethodCache.get_after_suite_hooks, request.currentExecutionInfo, false)
|
35
24
|
end
|
36
25
|
|
37
|
-
def process_spec_execution_start_request(
|
38
|
-
handle_hooks_execution(MethodCache.get_before_spec_hooks,
|
26
|
+
def process_spec_execution_start_request(request)
|
27
|
+
handle_hooks_execution(MethodCache.get_before_spec_hooks,request.currentExecutionInfo)
|
39
28
|
end
|
40
29
|
|
41
|
-
def process_spec_execution_end_request(
|
42
|
-
handle_hooks_execution(MethodCache.get_after_spec_hooks,
|
30
|
+
def process_spec_execution_end_request(request)
|
31
|
+
handle_hooks_execution(MethodCache.get_after_spec_hooks,request.currentExecutionInfo)
|
43
32
|
end
|
44
33
|
|
45
|
-
def process_scenario_execution_start_request(
|
46
|
-
handle_hooks_execution(MethodCache.get_before_scenario_hooks,
|
34
|
+
def process_scenario_execution_start_request(request)
|
35
|
+
handle_hooks_execution(MethodCache.get_before_scenario_hooks,request.currentExecutionInfo)
|
47
36
|
end
|
48
37
|
|
49
|
-
|
50
|
-
|
38
|
+
|
39
|
+
def process_scenario_execution_end_request(request)
|
40
|
+
handle_hooks_execution(MethodCache.get_after_scenario_hooks,request.currentExecutionInfo)
|
51
41
|
end
|
52
42
|
|
53
|
-
def process_step_execution_start_request(
|
54
|
-
|
55
|
-
handle_hooks_execution(MethodCache.get_before_step_hooks, message, message.stepExecutionStartingRequest.currentExecutionInfo)
|
43
|
+
def process_step_execution_start_request(request)
|
44
|
+
handle_hooks_execution(MethodCache.get_before_step_hooks,request.currentExecutionInfo)
|
56
45
|
end
|
57
46
|
|
58
|
-
def process_step_execution_end_request(
|
59
|
-
|
60
|
-
response.executionStatusResponse.executionResult.message = Gauge::GaugeMessages.instance.get
|
61
|
-
return response
|
47
|
+
def process_step_execution_end_request(request)
|
48
|
+
handle_hooks_execution(MethodCache.get_after_step_hooks,request.currentExecutionInfo)
|
62
49
|
end
|
63
50
|
end
|
64
51
|
end
|
@@ -1,29 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
1
|
+
=begin
|
2
|
+
* Copyright (c) ThoughtWorks, Inc.
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
4
|
+
* See LICENSE.txt in the project root for license information.
|
5
|
+
=end
|
18
6
|
require_relative '../util'
|
19
7
|
|
20
8
|
module Gauge
|
21
9
|
module Processors
|
22
|
-
def process_implementation_file_list_request(
|
10
|
+
def process_implementation_file_list_request(_request)
|
23
11
|
implPath = Util.get_step_implementation_dir
|
24
12
|
fileList = Dir["#{implPath}/**/*.rb"]
|
25
|
-
|
26
|
-
Messages::Message.new(:messageType => Messages::Message::MessageType::ImplementationFileListResponse, :messageId => message.messageId, :implementationFileListResponse => r)
|
13
|
+
Messages::ImplementationFileListResponse.new(:implementationFilePaths => fileList)
|
27
14
|
end
|
28
15
|
end
|
29
|
-
end
|
16
|
+
end
|