1
1
require 'thor'
2
- require 'webrick/https'
3
- require 'rack/handler/webrick'
4
- require 'fileutils'
5
- require 'pact/mock_service/server/wait_for_server_up'
6
- require 'pact/mock_service/cli/pidfile'
7
- require 'socket'
8
2
9
3
module Pact
10
4
module MockService
@@ -33,6 +27,7 @@ def self.exit_on_failure? # Thor 1.0 deprecation guard
33
27
method_option :monkeypatch , hide : true
34
28
35
29
def service
30
+ require_common_dependencies
36
31
require 'pact/mock_service/run'
37
32
Run . ( options )
38
33
end
@@ -51,6 +46,7 @@ def service
51
46
method_option :sslkey , desc : "Specify the path to the SSL key to use when running the service over HTTPS"
52
47
53
48
def control
49
+ require_common_dependencies
54
50
require 'pact/mock_service/control_server/run'
55
51
ControlServer ::Run . ( options )
56
52
end
@@ -73,6 +69,7 @@ def control
73
69
method_option :monkeypatch , hide : true
74
70
75
71
def start
72
+ require_common_dependencies
76
73
start_server ( mock_service_pidfile ) do
77
74
service
78
75
end
@@ -83,6 +80,7 @@ def start
83
80
method_option :pid_dir , desc : "PID dir, defaults to tmp/pids" , default : "tmp/pids"
84
81
85
82
def stop
83
+ require_common_dependencies
86
84
mock_service_pidfile . kill_process
87
85
end
88
86
@@ -103,6 +101,7 @@ def stop
103
101
method_option :sslkey , desc : "Specify the path to the SSL key to use when running the service over HTTPS"
104
102
105
103
def restart
104
+ require_common_dependencies
106
105
restart_server ( mock_service_pidfile ) do
107
106
service
108
107
end
@@ -123,6 +122,7 @@ def restart
123
122
method_option :pact_dir , aliases : "-d" , desc : "Directory to which the pacts will be written" , default : "."
124
123
125
124
def control_start
125
+ require_common_dependencies
126
126
start_server ( control_server_pidfile ) do
127
127
control
128
128
end
@@ -133,6 +133,7 @@ def control_start
133
133
method_option :pid_dir , desc : "PID dir, defaults to tmp/pids" , default : "tmp/pids"
134
134
135
135
def control_stop
136
+ require_common_dependencies
136
137
control_server_pidfile . kill_process
137
138
end
138
139
@@ -151,6 +152,7 @@ def control_stop
151
152
method_option :sslkey , desc : "Specify the path to the SSL key to use when running the service over HTTPS"
152
153
153
154
def control_restart
155
+ require_common_dependencies
154
156
restart_server ( control_server_pidfile ) do
155
157
control
156
158
end
@@ -167,6 +169,15 @@ def version
167
169
168
170
no_commands do
169
171
172
+ def require_common_dependencies
173
+ require 'webrick/https'
174
+ require 'rack/handler/webrick'
175
+ require 'fileutils'
176
+ require 'pact/mock_service/server/wait_for_server_up'
177
+ require 'pact/mock_service/cli/pidfile'
178
+ require 'socket'
179
+ end
180
+
170
181
def control_server_pidfile
171
182
Pidfile . new ( pid_dir : options [ :pid_dir ] , name : control_pidfile_name )
172
183
end
0 commit comments