mongrel2 0.53.0 → 0.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/ChangeLog +56 -2
- data/History.rdoc +7 -0
- data/Manifest.txt +17 -0
- data/Rakefile +21 -18
- data/bin/m2sh.rb +3 -738
- data/gem.deps.rb +2 -0
- data/lib/mongrel2.rb +1 -1
- data/lib/mongrel2/cli.rb +496 -0
- data/lib/mongrel2/cli/access.rb +29 -0
- data/lib/mongrel2/cli/bootstrap.rb +39 -0
- data/lib/mongrel2/cli/commit.rb +34 -0
- data/lib/mongrel2/cli/hosts.rb +51 -0
- data/lib/mongrel2/cli/init.rb +29 -0
- data/lib/mongrel2/cli/load.rb +41 -0
- data/lib/mongrel2/cli/log.rb +27 -0
- data/lib/mongrel2/cli/quickstart.rb +52 -0
- data/lib/mongrel2/cli/reload.rb +33 -0
- data/lib/mongrel2/cli/routes.rb +51 -0
- data/lib/mongrel2/cli/running.rb +44 -0
- data/lib/mongrel2/cli/servers.rb +34 -0
- data/lib/mongrel2/cli/settings.rb +26 -0
- data/lib/mongrel2/cli/start.rb +72 -0
- data/lib/mongrel2/cli/stop.rb +33 -0
- data/lib/mongrel2/config.rb +1 -0
- data/lib/mongrel2/config/directory.rb +11 -0
- data/lib/mongrel2/config/dsl.rb +13 -20
- data/lib/mongrel2/config/handler.rb +12 -0
- data/lib/mongrel2/config/host.rb +1 -1
- data/lib/mongrel2/config/proxy.rb +6 -0
- data/lib/mongrel2/config/server.rb +3 -2
- data/spec/mongrel2/config/dsl_spec.rb +6 -0
- metadata +73 -14
- metadata.gz.sig +0 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'mongrel2/config'
|
5
|
+
|
6
|
+
require 'mongrel2/cli' unless defined?( Mongrel2::CLI )
|
7
|
+
|
8
|
+
|
9
|
+
# Mongrel2 settings command
|
10
|
+
module Mongrel2::CLI::SettingsCommand
|
11
|
+
extend Mongrel2::CLI::Subcommand
|
12
|
+
|
13
|
+
|
14
|
+
desc "Show the 'advanced' server settings."
|
15
|
+
command :settings do |settingscmd|
|
16
|
+
|
17
|
+
settingscmd.action do |globals, options, args|
|
18
|
+
prompt.say( hl.headline "Advanced Server Settings" )
|
19
|
+
Mongrel2::Config.settings.each do |key,val|
|
20
|
+
prompt.say( "%s %s" % [ hl.key("#{key}:"), val] )
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end # module Mongrel2::CLI::SettingsCommand
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'shellwords'
|
5
|
+
require 'mongrel2/config'
|
6
|
+
|
7
|
+
require 'mongrel2/cli' unless defined?( Mongrel2::CLI )
|
8
|
+
|
9
|
+
|
10
|
+
# Mongrel2 start command
|
11
|
+
module Mongrel2::CLI::StartCommand
|
12
|
+
extend Mongrel2::CLI::Subcommand
|
13
|
+
|
14
|
+
|
15
|
+
desc "Starts a server."
|
16
|
+
long_desc <<~END_USAGE
|
17
|
+
[SERVER]
|
18
|
+
If not specified, SERVER is assumed to be the only server entry in the
|
19
|
+
current config. If there are more than one, you must specify a SERVER.
|
20
|
+
|
21
|
+
The SERVER can be a uuid, hostname, or server name, and are searched for
|
22
|
+
in that order.
|
23
|
+
END_USAGE
|
24
|
+
arg :SERVER, :optional
|
25
|
+
command :start do |startcmd|
|
26
|
+
|
27
|
+
startcmd.switch [:sudo, :s], desc: "Start the server with `sudo`"
|
28
|
+
|
29
|
+
startcmd.arg_name :PORT
|
30
|
+
startcmd.flag [:port, :p], desc: "Reset the configured PORT to bind to",
|
31
|
+
type: Integer
|
32
|
+
|
33
|
+
startcmd.action do |globals, options, args|
|
34
|
+
server = find_server( args.shift )
|
35
|
+
mongrel2 = find_mongrel2()
|
36
|
+
|
37
|
+
if options.port
|
38
|
+
prompt.say "Resetting %s server's port to %d" % [ server.name, options.port ]
|
39
|
+
server.port = options.port
|
40
|
+
server.save
|
41
|
+
end
|
42
|
+
|
43
|
+
cmd = [ mongrel2.to_s, Mongrel2::Config.dbname.to_s, server.uuid ]
|
44
|
+
cmd.unshift( 'sudo' ) if options.sudo
|
45
|
+
|
46
|
+
url = "http%s://%s:%d" % [
|
47
|
+
server.use_ssl? ? 's' : '',
|
48
|
+
server.bind_addr,
|
49
|
+
server.port,
|
50
|
+
]
|
51
|
+
|
52
|
+
# Change into the server's chroot directory so paths line up whether or not
|
53
|
+
# it's started as root
|
54
|
+
|
55
|
+
prompt.say( hl.header '*' * 70 )
|
56
|
+
prompt.say( hl.headline "Starting mongrel2 at: %s" % [ hl.key(url) ] )
|
57
|
+
prompt.say( hl.header '*' * 70 )
|
58
|
+
|
59
|
+
if server.chroot && server.chroot != '' && server.chroot != '.'
|
60
|
+
Dir.chdir( server.chroot )
|
61
|
+
prompt.say " changed PWD to: #{Dir.pwd}"
|
62
|
+
end
|
63
|
+
|
64
|
+
Mongrel2::Config.log_action( "Starting server: #{server}", options.why )
|
65
|
+
self.log.debug " command is: #{Shellwords.shelljoin(cmd)}"
|
66
|
+
exec( *cmd )
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
end # module Mongrel2::CLI::StartCommand
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'mongrel2/config'
|
5
|
+
|
6
|
+
require 'mongrel2/cli' unless defined?( Mongrel2::CLI )
|
7
|
+
|
8
|
+
|
9
|
+
# Mongrel2 stop command
|
10
|
+
module Mongrel2::CLI::StopCommand
|
11
|
+
extend Mongrel2::CLI::Subcommand
|
12
|
+
|
13
|
+
|
14
|
+
desc "Stop the specified server gracefully"
|
15
|
+
arg :SERVER
|
16
|
+
command :stop do |stopcmd|
|
17
|
+
|
18
|
+
stopcmd.action do |globals, options, args|
|
19
|
+
server = find_server( args.shift )
|
20
|
+
control = server.control_socket
|
21
|
+
|
22
|
+
prompt.say( hl.header "Stopping '%s' gracefully." % [ server.name ] )
|
23
|
+
control.stop
|
24
|
+
control.close
|
25
|
+
prompt.say( "done." )
|
26
|
+
|
27
|
+
Mongrel2::Config.log_action( "Stopped server #{server}", globals.why )
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
end # module Mongrel2::CLI::StopCommand
|
data/lib/mongrel2/config.rb
CHANGED
@@ -23,6 +23,17 @@ class Mongrel2::Config::Directory < Mongrel2::Config( :directory )
|
|
23
23
|
end
|
24
24
|
|
25
25
|
|
26
|
+
### Return a description of the directory.
|
27
|
+
def to_s
|
28
|
+
return "Directory %s(%s) {%s} [cache %ds]" % [
|
29
|
+
self.base,
|
30
|
+
self.index_file,
|
31
|
+
self.default_ctype,
|
32
|
+
self.cache_ttl
|
33
|
+
]
|
34
|
+
end
|
35
|
+
|
36
|
+
|
26
37
|
#########
|
27
38
|
protected
|
28
39
|
#########
|
data/lib/mongrel2/config/dsl.rb
CHANGED
@@ -22,17 +22,11 @@ module Mongrel2::Config::DSL
|
|
22
22
|
### Create an instance of the specified +targetclass+ using the specified +opts+
|
23
23
|
### as initial values. The first pair of +opts+ will be used in the filter to
|
24
24
|
### find any previous instance and delete it.
|
25
|
-
def initialize( targetclass, opts={} )
|
25
|
+
def initialize( targetclass, opts={}, &block )
|
26
26
|
self.log.debug "Wrapping a %p" % [ targetclass ]
|
27
27
|
@targetclass = targetclass
|
28
28
|
|
29
|
-
|
30
|
-
unless opts.empty?
|
31
|
-
first_pair = Hash[ *opts.first ]
|
32
|
-
@targetclass.filter( first_pair ).destroy
|
33
|
-
end
|
34
|
-
|
35
|
-
@target = @targetclass.new( opts )
|
29
|
+
@target = @targetclass.find_or_new( opts, &block )
|
36
30
|
self.decorate_with_column_declaratives( @target )
|
37
31
|
self.decorate_with_custom_declaratives( @targetclass )
|
38
32
|
end
|
@@ -98,19 +92,18 @@ module Mongrel2::Config::DSL
|
|
98
92
|
Mongrel2.log.info "Entering transaction for server %p" % [ uuid ]
|
99
93
|
Mongrel2::Config.db.transaction do
|
100
94
|
|
101
|
-
# Set up the options hash with the UUID and reasonable defaults
|
102
|
-
# for everything else
|
103
|
-
server_opts = {
|
104
|
-
uuid: uuid,
|
105
|
-
access_log: "/logs/access.log",
|
106
|
-
error_log: "/logs/error.log",
|
107
|
-
pid_file: "/run/mongrel2.pid",
|
108
|
-
default_host: "localhost",
|
109
|
-
port: 8888,
|
110
|
-
}
|
111
|
-
|
112
95
|
Mongrel2.log.debug "Server [%s] (block: %p)" % [ uuid, block ]
|
113
|
-
adapter = Adapter.new( Mongrel2::Config::Server,
|
96
|
+
adapter = Adapter.new( Mongrel2::Config::Server, uuid: uuid ) do |server|
|
97
|
+
server.access_log ||= "/logs/access.log"
|
98
|
+
server.error_log ||= "/logs/error.log"
|
99
|
+
server.pid_file ||= "/run/mongrel2.pid"
|
100
|
+
server.default_host ||= "localhost"
|
101
|
+
server.port ||= 8888
|
102
|
+
|
103
|
+
server.hosts.each( &:destroy )
|
104
|
+
server.filters.each( &:destroy )
|
105
|
+
server.xrequests.each( &:destroy )
|
106
|
+
end
|
114
107
|
adapter.instance_eval( &block ) if block
|
115
108
|
|
116
109
|
Mongrel2.log.info " saving server %p..." % [ uuid ]
|
@@ -59,6 +59,18 @@ class Mongrel2::Config::Handler < Mongrel2::Config( :handler )
|
|
59
59
|
end
|
60
60
|
|
61
61
|
|
62
|
+
### Return a description of the handler.
|
63
|
+
def to_s
|
64
|
+
return "Handler `%s' %s <-> %s {%s}%s" % [
|
65
|
+
self.send_ident,
|
66
|
+
self.recv_spec,
|
67
|
+
self.send_spec,
|
68
|
+
self.protocol,
|
69
|
+
self.raw_payload.nonzero? ? ' (raw)' : '',
|
70
|
+
]
|
71
|
+
end
|
72
|
+
|
73
|
+
|
62
74
|
#########
|
63
75
|
protected
|
64
76
|
#########
|
data/lib/mongrel2/config/host.rb
CHANGED
@@ -51,7 +51,7 @@ class Mongrel2::Config::Host < Mongrel2::Config( :host )
|
|
51
51
|
self.target.save
|
52
52
|
self.log.debug "Route %s -> %p [%p]" % [ path, target, opts ]
|
53
53
|
|
54
|
-
args = { :
|
54
|
+
args = { path: path, target: target }
|
55
55
|
args.merge!( opts )
|
56
56
|
route = Mongrel2::Config::Route.new( args )
|
57
57
|
|
@@ -12,5 +12,11 @@ class Mongrel2::Config::Proxy < Mongrel2::Config( :proxy )
|
|
12
12
|
# addr TEXT,
|
13
13
|
# port INTEGER);
|
14
14
|
|
15
|
+
|
16
|
+
### Return a description of the proxy.
|
17
|
+
def to_s
|
18
|
+
return "Proxy to %s:%d" % [ self.addr, self.port ]
|
19
|
+
end
|
20
|
+
|
15
21
|
end # class Mongrel2::Config::Proxy
|
16
22
|
|
@@ -197,10 +197,11 @@ class Mongrel2::Config::Server < Mongrel2::Config( :server )
|
|
197
197
|
self.target.save( :validate => false )
|
198
198
|
|
199
199
|
self.log.debug "Host [%s] (block: %p)" % [ name, block ]
|
200
|
-
adapter = Mongrel2::Config::DSL::Adapter.
|
200
|
+
adapter = Mongrel2::Config::DSL::Adapter.
|
201
|
+
new( Mongrel2::Config::Host, name: name, server_id: self.target.id )
|
201
202
|
adapter.target.matching = name
|
202
203
|
adapter.instance_eval( &block ) if block
|
203
|
-
|
204
|
+
adapter.target.save
|
204
205
|
end
|
205
206
|
|
206
207
|
|
@@ -56,6 +56,8 @@ describe Mongrel2::Config::DSL, :db do
|
|
56
56
|
|
57
57
|
end
|
58
58
|
|
59
|
+
result.refresh
|
60
|
+
|
59
61
|
expect( result ).to be_a( Mongrel2::Config::Server )
|
60
62
|
expect( result.hosts.size ).to eq( 1 )
|
61
63
|
host = result.hosts.first
|
@@ -95,6 +97,8 @@ describe Mongrel2::Config::DSL, :db do
|
|
95
97
|
|
96
98
|
end
|
97
99
|
|
100
|
+
result.refresh
|
101
|
+
|
98
102
|
expect( result ).to be_a( Mongrel2::Config::Server )
|
99
103
|
expect( result.hosts.size ).to eq( 2 )
|
100
104
|
host1, host2 = result.hosts
|
@@ -232,6 +236,7 @@ describe Mongrel2::Config::DSL, :db do
|
|
232
236
|
min_size: 1000
|
233
237
|
end
|
234
238
|
|
239
|
+
result.refresh
|
235
240
|
expect( result.filters.size ).to eq( 1 )
|
236
241
|
expect( result.filters.first ).to be_a( Mongrel2::Config::Filter )
|
237
242
|
expect( result.filters.first.settings ).
|
@@ -261,6 +266,7 @@ describe Mongrel2::Config::DSL, :db do
|
|
261
266
|
min_size: 1000
|
262
267
|
end
|
263
268
|
|
269
|
+
result.refresh
|
264
270
|
expect( result.xrequests.size ).to eq( 1 )
|
265
271
|
expect( result.xrequests.first ).to be_a( Mongrel2::Config::XRequest )
|
266
272
|
expect( result.xrequests.first.settings ).
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongrel2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.54.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
v4qqqa27Bs468d6SoPxjSm8a2mM9HZ4OdWhq4tFsbTeXDVquCfi64OTEaTt2xQdR
|
35
35
|
JnC4lpJfCP6aCXa5h2XAQfPSH636cQap
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2019-06
|
37
|
+
date: 2019-09-06 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: cztop
|
@@ -64,34 +64,62 @@ dependencies:
|
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0.6'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: gli
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '2.19'
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '2.19'
|
67
81
|
- !ruby/object:Gem::Dependency
|
68
82
|
name: libxml-ruby
|
69
83
|
requirement: !ruby/object:Gem::Requirement
|
70
84
|
requirements:
|
71
85
|
- - "~>"
|
72
86
|
- !ruby/object:Gem::Version
|
73
|
-
version: '3.
|
87
|
+
version: '3.1'
|
74
88
|
type: :runtime
|
75
89
|
prerelease: false
|
76
90
|
version_requirements: !ruby/object:Gem::Requirement
|
77
91
|
requirements:
|
78
92
|
- - "~>"
|
79
93
|
- !ruby/object:Gem::Version
|
80
|
-
version: '3.
|
94
|
+
version: '3.1'
|
81
95
|
- !ruby/object:Gem::Dependency
|
82
96
|
name: loggability
|
83
97
|
requirement: !ruby/object:Gem::Requirement
|
84
98
|
requirements:
|
85
99
|
- - "~>"
|
86
100
|
- !ruby/object:Gem::Version
|
87
|
-
version: '0.
|
101
|
+
version: '0.14'
|
88
102
|
type: :runtime
|
89
103
|
prerelease: false
|
90
104
|
version_requirements: !ruby/object:Gem::Requirement
|
91
105
|
requirements:
|
92
106
|
- - "~>"
|
93
107
|
- !ruby/object:Gem::Version
|
94
|
-
version: '0.
|
108
|
+
version: '0.14'
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: pastel
|
111
|
+
requirement: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - "~>"
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0.7'
|
116
|
+
type: :runtime
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0.7'
|
95
123
|
- !ruby/object:Gem::Dependency
|
96
124
|
name: sequel
|
97
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,33 +177,47 @@ dependencies:
|
|
149
177
|
- !ruby/object:Gem::Version
|
150
178
|
version: '0.3'
|
151
179
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
180
|
+
name: tty-prompt
|
153
181
|
requirement: !ruby/object:Gem::Requirement
|
154
182
|
requirements:
|
155
183
|
- - "~>"
|
156
184
|
- !ruby/object:Gem::Version
|
157
|
-
version: '
|
185
|
+
version: '0.19'
|
158
186
|
type: :runtime
|
159
187
|
prerelease: false
|
160
188
|
version_requirements: !ruby/object:Gem::Requirement
|
161
189
|
requirements:
|
162
190
|
- - "~>"
|
163
191
|
- !ruby/object:Gem::Version
|
164
|
-
version: '
|
192
|
+
version: '0.19'
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: tty-table
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0.11'
|
200
|
+
type: :runtime
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0.11'
|
165
207
|
- !ruby/object:Gem::Dependency
|
166
208
|
name: yajl-ruby
|
167
209
|
requirement: !ruby/object:Gem::Requirement
|
168
210
|
requirements:
|
169
211
|
- - "~>"
|
170
212
|
- !ruby/object:Gem::Version
|
171
|
-
version: '1.
|
213
|
+
version: '1.4'
|
172
214
|
type: :runtime
|
173
215
|
prerelease: false
|
174
216
|
version_requirements: !ruby/object:Gem::Requirement
|
175
217
|
requirements:
|
176
218
|
- - "~>"
|
177
219
|
- !ruby/object:Gem::Version
|
178
|
-
version: '1.
|
220
|
+
version: '1.4'
|
179
221
|
- !ruby/object:Gem::Dependency
|
180
222
|
name: hoe-mercurial
|
181
223
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,14 +280,14 @@ dependencies:
|
|
238
280
|
requirements:
|
239
281
|
- - "~>"
|
240
282
|
- !ruby/object:Gem::Version
|
241
|
-
version: '3.
|
283
|
+
version: '3.4'
|
242
284
|
type: :development
|
243
285
|
prerelease: false
|
244
286
|
version_requirements: !ruby/object:Gem::Requirement
|
245
287
|
requirements:
|
246
288
|
- - "~>"
|
247
289
|
- !ruby/object:Gem::Version
|
248
|
-
version: '3.
|
290
|
+
version: '3.4'
|
249
291
|
- !ruby/object:Gem::Dependency
|
250
292
|
name: simplecov
|
251
293
|
requirement: !ruby/object:Gem::Requirement
|
@@ -339,7 +381,24 @@ files:
|
|
339
381
|
- data/mongrel2/config.rb.in
|
340
382
|
- data/mongrel2/config.sql
|
341
383
|
- data/mongrel2/mimetypes.sql
|
384
|
+
- gem.deps.rb
|
342
385
|
- lib/mongrel2.rb
|
386
|
+
- lib/mongrel2/cli.rb
|
387
|
+
- lib/mongrel2/cli/access.rb
|
388
|
+
- lib/mongrel2/cli/bootstrap.rb
|
389
|
+
- lib/mongrel2/cli/commit.rb
|
390
|
+
- lib/mongrel2/cli/hosts.rb
|
391
|
+
- lib/mongrel2/cli/init.rb
|
392
|
+
- lib/mongrel2/cli/load.rb
|
393
|
+
- lib/mongrel2/cli/log.rb
|
394
|
+
- lib/mongrel2/cli/quickstart.rb
|
395
|
+
- lib/mongrel2/cli/reload.rb
|
396
|
+
- lib/mongrel2/cli/routes.rb
|
397
|
+
- lib/mongrel2/cli/running.rb
|
398
|
+
- lib/mongrel2/cli/servers.rb
|
399
|
+
- lib/mongrel2/cli/settings.rb
|
400
|
+
- lib/mongrel2/cli/start.rb
|
401
|
+
- lib/mongrel2/cli/stop.rb
|
343
402
|
- lib/mongrel2/config.rb
|
344
403
|
- lib/mongrel2/config/directory.rb
|
345
404
|
- lib/mongrel2/config/dsl.rb
|
@@ -411,7 +470,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
411
470
|
requirements:
|
412
471
|
- - ">="
|
413
472
|
- !ruby/object:Gem::Version
|
414
|
-
version: 2.
|
473
|
+
version: 2.5.0
|
415
474
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
416
475
|
requirements:
|
417
476
|
- - ">="
|