capistrano-data_plane_api 0.1.5 → 0.2.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
- data/.rubocop.yml +5 -2
- data/.ruby-version +1 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile +7 -4
- data/Gemfile.lock +108 -69
- data/README.md +5 -0
- data/capistrano-data_plane_api.gemspec +5 -2
- data/exe/cap_data_plane_api +3 -2
- data/lib/capistrano/data_plane_api/configuration/backend.rb +2 -0
- data/lib/capistrano/data_plane_api/configuration/server.rb +4 -2
- data/lib/capistrano/data_plane_api/configuration/symbol.rb +2 -0
- data/lib/capistrano/data_plane_api/configuration.rb +3 -3
- data/lib/capistrano/data_plane_api/deploy/args.rb +71 -40
- data/lib/capistrano/data_plane_api/deploy/deployment_stats.rb +29 -25
- data/lib/capistrano/data_plane_api/deploy/group.rb +33 -24
- data/lib/capistrano/data_plane_api/deploy/helper.rb +3 -5
- data/lib/capistrano/data_plane_api/deploy/server_stats.rb +60 -43
- data/lib/capistrano/data_plane_api/deploy.rb +3 -2
- data/lib/capistrano/data_plane_api/diggable.rb +5 -2
- data/lib/capistrano/data_plane_api/equatable.rb +4 -2
- data/lib/capistrano/data_plane_api/helper.rb +31 -27
- data/lib/capistrano/data_plane_api/hooks.rb +1 -0
- data/lib/capistrano/data_plane_api/show_state.rb +15 -12
- data/lib/capistrano/data_plane_api/tasks.rb +26 -2
- data/lib/capistrano/data_plane_api/terminal_print_loop.rb +7 -4
- data/lib/capistrano/data_plane_api/type.rb +9 -5
- data/lib/capistrano/data_plane_api/version.rb +2 -2
- data/lib/capistrano/data_plane_api.rb +96 -69
- data/lib/capistrano-data_plane_api.rb +4 -0
- data/rbi/capistrano-data_plane_api.rbi +283 -0
- data/sorbet/config +6 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/faraday.rbi +17 -0
- data/sorbet/rbi/annotations/minitest.rbi +119 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/annotations/webmock.rbi +9 -0
- data/sorbet/rbi/dsl/.gitattributes +1 -0
- data/sorbet/rbi/dsl/capistrano/data_plane_api/configuration/backend.rbi +50 -0
- data/sorbet/rbi/dsl/capistrano/data_plane_api/configuration/server.rbi +24 -0
- data/sorbet/rbi/dsl/capistrano/data_plane_api/configuration.rbi +52 -0
- data/sorbet/rbi/dsl/capistrano/data_plane_api/type.rbi +12 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/addressable@2.8.7.rbi +1994 -0
- data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
- data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
- data/sorbet/rbi/gems/bigdecimal@3.1.9.rbi +8 -0
- data/sorbet/rbi/gems/booleans@0.1.3.rbi +28 -0
- data/sorbet/rbi/gems/byebug@12.0.0.rbi +37 -0
- data/sorbet/rbi/gems/crack@1.0.0.rbi +145 -0
- data/sorbet/rbi/gems/data_plane_api@0.2.0.rbi +238 -0
- data/sorbet/rbi/gems/faraday-net_http@3.4.0.rbi +147 -0
- data/sorbet/rbi/gems/faraday@2.13.0.rbi +2974 -0
- data/sorbet/rbi/gems/hashdiff@1.1.2.rbi +353 -0
- data/sorbet/rbi/gems/json@2.10.2.rbi +2113 -0
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
- data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
- data/sorbet/rbi/gems/minitest@5.25.5.rbi +1547 -0
- data/sorbet/rbi/gems/net-http@0.6.0.rbi +4247 -0
- data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
- data/sorbet/rbi/gems/pastel@0.8.0.rbi +733 -0
- data/sorbet/rbi/gems/public_suffix@6.0.1.rbi +936 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +160 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +404 -0
- data/sorbet/rbi/gems/rake@13.0.6.rbi +3030 -0
- data/sorbet/rbi/gems/rexml@3.4.1.rbi +5346 -0
- data/sorbet/rbi/gems/rubocop-espago@1.1.8.rbi +9 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
- data/sorbet/rbi/gems/shale-builder@0.2.4.rbi +9 -0
- data/sorbet/rbi/gems/shale@1.2.2.rbi +2323 -0
- data/sorbet/rbi/gems/shoulda-context@2.0.0.rbi +563 -0
- data/sorbet/rbi/gems/strings-ansi@0.2.0.rbi +178 -0
- data/sorbet/rbi/gems/strings@0.2.1.rbi +830 -0
- data/sorbet/rbi/gems/thor@1.2.1.rbi +3957 -0
- data/sorbet/rbi/gems/tty-box@0.7.0.rbi +593 -0
- data/sorbet/rbi/gems/tty-color@0.6.0.rbi +241 -0
- data/sorbet/rbi/gems/tty-cursor@0.7.1.rbi +443 -0
- data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +66 -0
- data/sorbet/rbi/gems/unicode_utils@1.4.0.rbi +184 -0
- data/sorbet/rbi/gems/uri@1.0.3.rbi +2349 -0
- data/sorbet/rbi/gems/vcr@6.3.1.rbi +3040 -0
- data/sorbet/rbi/gems/webmock@3.25.1.rbi +1792 -0
- data/sorbet/rbi/shims/gems/faraday.rbi +21 -0
- data/sorbet/rbi/shims/gems/shoulda-context@2.0.0.rbi +15 -0
- data/sorbet/rbi/todo.rbi +7 -0
- data/sorbet/tapioca/config.yml +28 -0
- data/sorbet/tapioca/extensions/load_gem.rb +1 -0
- data/sorbet/tapioca/require.rb +4 -0
- data/templates/bin/deploy.rb +1 -0
- metadata +106 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2fbef11d1085b0a08770a0163bd900997b3551e56dcbd330fbec0279e68df5e
|
4
|
+
data.tar.gz: '078ac41c6e4c038f3357a67862edba33c6cbe502aa915ce3baa692f960c53c7a'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15bc71ada7d184ae09e4274e01f24d3b6221286c2f75c4b6392b6300299e86255e6922f77ed305c8cdda2140c4caeb87498e0c53c5e53b8978c88770946e1c2c
|
7
|
+
data.tar.gz: 827fc53b6a34303a1c4366d808600e1ec52ec9e2fb2023cae3ccb2fadc2aeb96cc5e13c67f99440343e38315db59c0ce09df4e6a21a9e196c71f7d384fb40042
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.2
|
1
|
+
3.4.2
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -5,11 +5,14 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in capistrano-data_plane_api.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
gem '
|
8
|
+
gem 'byebug', '~> 12.0' # debugger
|
9
|
+
gem 'minitest', '~> 5.0' # Tests framework
|
9
10
|
gem 'rake', '~> 13.0' # Ruby automation tasks
|
10
11
|
gem 'rubocop', '~> 1.21' # Ruby linter
|
11
12
|
gem 'rubocop-espago', '~> 1.0' # Custom Ruby linter config
|
12
|
-
gem '
|
13
|
+
gem 'rubocop-sorbet', '~> 0.10.0' # Rubocop config for sorbet
|
13
14
|
gem 'shoulda-context', '~> 2.0' # Testing utilities
|
14
|
-
gem '
|
15
|
-
gem '
|
15
|
+
gem 'sorbet', '~> 0.5' # static typechecker
|
16
|
+
gem 'tapioca', '~> 0.16.11', require: false # RBI generator
|
17
|
+
gem 'vcr', '~> 6.3.1' # Save HTTP interactions to files during tests
|
18
|
+
gem 'webmock', '~> 3.25.1' # Mock network interactions
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capistrano-data_plane_api (0.
|
5
|
-
|
4
|
+
capistrano-data_plane_api (0.2.0)
|
5
|
+
booleans (~> 0.1)
|
6
|
+
data_plane_api (>= 0.2)
|
6
7
|
pastel (< 1)
|
7
8
|
shale (>= 1, < 2)
|
9
|
+
shale-builder (~> 0.2.4)
|
10
|
+
sorbet-runtime (~> 0.5)
|
8
11
|
thor (> 1, < 2)
|
9
12
|
tty-box (< 1)
|
10
13
|
tty-cursor (< 1)
|
@@ -12,117 +15,153 @@ PATH
|
|
12
15
|
GEM
|
13
16
|
remote: https://rubygems.org/
|
14
17
|
specs:
|
15
|
-
addressable (2.8.
|
16
|
-
public_suffix (>= 2.0.2, <
|
17
|
-
ast (2.4.
|
18
|
-
|
18
|
+
addressable (2.8.7)
|
19
|
+
public_suffix (>= 2.0.2, < 7.0)
|
20
|
+
ast (2.4.3)
|
21
|
+
base64 (0.2.0)
|
19
22
|
benchmark (0.2.1)
|
20
|
-
|
23
|
+
bigdecimal (3.1.9)
|
24
|
+
booleans (0.1.3)
|
25
|
+
sorbet-runtime (>= 0.5)
|
26
|
+
byebug (12.0.0)
|
27
|
+
crack (1.0.0)
|
28
|
+
bigdecimal
|
21
29
|
rexml
|
22
|
-
data_plane_api (0.
|
30
|
+
data_plane_api (0.2.0)
|
31
|
+
booleans (~> 0.1.3)
|
23
32
|
faraday (> 1, < 3)
|
24
|
-
|
25
|
-
|
26
|
-
faraday (2.
|
27
|
-
faraday-net_http (>= 2.0, < 3.
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
parser (3.1.3.0)
|
33
|
+
sorbet-runtime (~> 0.5)
|
34
|
+
erubi (1.13.1)
|
35
|
+
faraday (2.13.0)
|
36
|
+
faraday-net_http (>= 2.0, < 3.5)
|
37
|
+
json
|
38
|
+
logger
|
39
|
+
faraday-net_http (3.4.0)
|
40
|
+
net-http (>= 0.5.0)
|
41
|
+
hashdiff (1.1.2)
|
42
|
+
json (2.10.2)
|
43
|
+
language_server-protocol (3.17.0.4)
|
44
|
+
lint_roller (1.1.0)
|
45
|
+
logger (1.7.0)
|
46
|
+
minitest (5.25.5)
|
47
|
+
net-http (0.6.0)
|
48
|
+
uri
|
49
|
+
netrc (0.11.0)
|
50
|
+
parallel (1.26.3)
|
51
|
+
parser (3.3.7.4)
|
44
52
|
ast (~> 2.4.1)
|
53
|
+
racc
|
45
54
|
pastel (0.8.0)
|
46
55
|
tty-color (~> 0.5)
|
47
|
-
|
48
|
-
|
56
|
+
prism (1.4.0)
|
57
|
+
public_suffix (6.0.1)
|
58
|
+
racc (1.8.1)
|
49
59
|
rainbow (3.1.1)
|
50
60
|
rake (13.0.6)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
61
|
+
rbi (0.3.1)
|
62
|
+
prism (~> 1.0)
|
63
|
+
rbs (>= 3.4.4)
|
64
|
+
sorbet-runtime (>= 0.5.9204)
|
65
|
+
rbs (3.9.2)
|
66
|
+
logger
|
67
|
+
regexp_parser (2.10.0)
|
68
|
+
rexml (3.4.1)
|
69
|
+
rubocop (1.75.2)
|
56
70
|
json (~> 2.3)
|
71
|
+
language_server-protocol (~> 3.17.0.2)
|
72
|
+
lint_roller (~> 1.1.0)
|
57
73
|
parallel (~> 1.10)
|
58
|
-
parser (>= 3.
|
74
|
+
parser (>= 3.3.0.2)
|
59
75
|
rainbow (>= 2.2.2, < 4.0)
|
60
|
-
regexp_parser (>=
|
61
|
-
|
62
|
-
rubocop-ast (>= 1.23.0, < 2.0)
|
76
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
77
|
+
rubocop-ast (>= 1.44.0, < 2.0)
|
63
78
|
ruby-progressbar (~> 1.7)
|
64
|
-
unicode-display_width (>=
|
65
|
-
rubocop-ast (1.
|
66
|
-
parser (>= 3.
|
67
|
-
|
79
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
80
|
+
rubocop-ast (1.44.0)
|
81
|
+
parser (>= 3.3.7.2)
|
82
|
+
prism (~> 1.4)
|
83
|
+
rubocop-espago (1.1.8)
|
68
84
|
rubocop
|
69
|
-
|
70
|
-
|
71
|
-
|
85
|
+
rubocop-sorbet (0.10.0)
|
86
|
+
rubocop (>= 1)
|
87
|
+
ruby-progressbar (1.13.0)
|
88
|
+
shale (1.2.2)
|
89
|
+
bigdecimal
|
90
|
+
shale-builder (0.2.4)
|
91
|
+
booleans (>= 0.1)
|
92
|
+
shale (< 2.0)
|
93
|
+
sorbet-runtime (> 0.5)
|
72
94
|
shoulda-context (2.0.0)
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
yard (~> 0.9, >= 0.9.24)
|
95
|
+
sorbet (0.5.12003)
|
96
|
+
sorbet-static (= 0.5.12003)
|
97
|
+
sorbet-runtime (0.5.12003)
|
98
|
+
sorbet-static (0.5.12003-universal-darwin)
|
99
|
+
sorbet-static (0.5.12003-x86_64-linux)
|
100
|
+
sorbet-static-and-runtime (0.5.12003)
|
101
|
+
sorbet (= 0.5.12003)
|
102
|
+
sorbet-runtime (= 0.5.12003)
|
103
|
+
spoom (1.6.1)
|
104
|
+
erubi (>= 1.10.0)
|
105
|
+
prism (>= 0.28.0)
|
106
|
+
rbi (>= 0.2.3)
|
107
|
+
sorbet-static-and-runtime (>= 0.5.10187)
|
108
|
+
thor (>= 0.19.2)
|
88
109
|
strings (0.2.1)
|
89
110
|
strings-ansi (~> 0.2)
|
90
111
|
unicode-display_width (>= 1.5, < 3.0)
|
91
112
|
unicode_utils (~> 1.4)
|
92
113
|
strings-ansi (0.2.0)
|
114
|
+
tapioca (0.16.11)
|
115
|
+
benchmark
|
116
|
+
bundler (>= 2.2.25)
|
117
|
+
netrc (>= 0.11.0)
|
118
|
+
parallel (>= 1.21.0)
|
119
|
+
rbi (~> 0.2)
|
120
|
+
sorbet-static-and-runtime (>= 0.5.11087)
|
121
|
+
spoom (>= 1.2.0)
|
122
|
+
thor (>= 1.2.0)
|
123
|
+
yard-sorbet
|
93
124
|
thor (1.2.1)
|
94
|
-
tilt (2.0.11)
|
95
125
|
tty-box (0.7.0)
|
96
126
|
pastel (~> 0.8)
|
97
127
|
strings (~> 0.2.0)
|
98
128
|
tty-cursor (~> 0.7)
|
99
129
|
tty-color (0.6.0)
|
100
130
|
tty-cursor (0.7.1)
|
101
|
-
unicode-display_width (2.
|
131
|
+
unicode-display_width (2.6.0)
|
102
132
|
unicode_utils (1.4.0)
|
103
|
-
|
104
|
-
|
133
|
+
uri (1.0.3)
|
134
|
+
vcr (6.3.1)
|
135
|
+
base64
|
136
|
+
webmock (3.25.1)
|
105
137
|
addressable (>= 2.8.0)
|
106
138
|
crack (>= 0.3.2)
|
107
139
|
hashdiff (>= 0.4.0, < 2.0.0)
|
108
140
|
webrick (1.7.0)
|
109
141
|
yard (0.9.28)
|
110
142
|
webrick (~> 1.7.0)
|
143
|
+
yard-sorbet (0.9.0)
|
144
|
+
sorbet-runtime
|
145
|
+
yard
|
111
146
|
|
112
147
|
PLATFORMS
|
113
148
|
arm64-darwin-20
|
149
|
+
arm64-darwin-23
|
114
150
|
x86_64-linux
|
115
151
|
|
116
152
|
DEPENDENCIES
|
153
|
+
byebug (~> 12.0)
|
117
154
|
capistrano-data_plane_api!
|
118
155
|
minitest (~> 5.0)
|
119
156
|
rake (~> 13.0)
|
120
157
|
rubocop (~> 1.21)
|
121
158
|
rubocop-espago (~> 1.0)
|
159
|
+
rubocop-sorbet (~> 0.10.0)
|
122
160
|
shoulda-context (~> 2.0)
|
123
|
-
|
124
|
-
|
125
|
-
|
161
|
+
sorbet (~> 0.5)
|
162
|
+
tapioca (~> 0.16.11)
|
163
|
+
vcr (~> 6.3.1)
|
164
|
+
webmock (~> 3.25.1)
|
126
165
|
|
127
166
|
BUNDLED WITH
|
128
|
-
2.
|
167
|
+
2.6.7
|
data/README.md
CHANGED
@@ -73,6 +73,7 @@ This script can be used to deploy this app to remote servers.
|
|
73
73
|
|
74
74
|
-c, --current Deploy from the currently checked out branch
|
75
75
|
-t, --test Show the commands that would be executed but do not carry out the deployment
|
76
|
+
-C, --check Test deployment dependencies. Checks things like directory permissions, necessary utilities, HaProxy backends and servers
|
76
77
|
-g, --group=GROUP Deploy the code to every server in the passed HAProxy backend/group
|
77
78
|
--no-haproxy Do not modify the state of any server in HAProxy
|
78
79
|
--force-haproxy Ignore the current state of servers in HAProxy
|
@@ -144,6 +145,7 @@ $ bin/deploy -g production -r deploy:restart
|
|
144
145
|
|
145
146
|
There are three new Rake tasks:
|
146
147
|
|
148
|
+
- `data_plane_api:server:check` -- check the state of the currently deployed server and log it to stdout
|
147
149
|
- `data_plane_api:server:set_drain` -- sets the admin state of the currently deployed server to `DRAIN`
|
148
150
|
- `data_plane_api:server:set_maint` -- sets the admin state of the currently deployed server to `MAINT`
|
149
151
|
- `data_plane_api:server:set_ready` -- sets the admin state of the currently deployed server to `READY`
|
@@ -175,6 +177,9 @@ Our config works as follows:
|
|
175
177
|
```
|
176
178
|
deploy
|
177
179
|
deploy:starting
|
180
|
+
deploy:check
|
181
|
+
[before]
|
182
|
+
data_plane_api:server:check
|
178
183
|
deploy:started
|
179
184
|
[after]
|
180
185
|
data_plane_api:server:set_drain
|
@@ -12,7 +12,7 @@ require_relative 'lib/capistrano/data_plane_api/version'
|
|
12
12
|
spec.description = 'Capistrano plugin which helps you automatically change the admin state of your HAProxy servers'
|
13
13
|
spec.homepage = 'https://github.com/espago/capistrano-data_plane_api'
|
14
14
|
spec.license = 'MIT'
|
15
|
-
spec.required_ruby_version = '>= 2.
|
15
|
+
spec.required_ruby_version = '>= 3.2.0'
|
16
16
|
|
17
17
|
spec.metadata['homepage_uri'] = spec.homepage
|
18
18
|
spec.metadata['source_code_uri'] = 'https://github.com/espago/capistrano-data_plane_api'
|
@@ -30,9 +30,12 @@ require_relative 'lib/capistrano/data_plane_api/version'
|
|
30
30
|
spec.require_paths = ['lib']
|
31
31
|
|
32
32
|
# Uncomment to register a new dependency of your gem
|
33
|
-
spec.add_dependency '
|
33
|
+
spec.add_dependency 'booleans', '~> 0.1'
|
34
|
+
spec.add_dependency 'data_plane_api', '>= 0.2'
|
34
35
|
spec.add_dependency 'pastel', '< 1'
|
35
36
|
spec.add_dependency 'shale', '>= 1', '< 2'
|
37
|
+
spec.add_dependency 'shale-builder', '~> 0.2.4'
|
38
|
+
spec.add_dependency 'sorbet-runtime', '~> 0.5'
|
36
39
|
spec.add_dependency 'thor', '> 1', '< 2'
|
37
40
|
spec.add_dependency 'tty-box', '< 1'
|
38
41
|
spec.add_dependency 'tty-cursor', '< 1'
|
data/exe/cap_data_plane_api
CHANGED
@@ -3,13 +3,14 @@
|
|
3
3
|
|
4
4
|
require 'thor'
|
5
5
|
|
6
|
+
# Implements the installer script for `capistrano-data_plane_api`
|
6
7
|
class ::CapistranoDataPlaneApiCommand < ::Thor
|
7
8
|
include ::Thor::Actions
|
8
9
|
|
9
10
|
class << self
|
10
11
|
# Define the generator's root folder
|
11
12
|
#
|
12
|
-
|
13
|
+
#: -> String
|
13
14
|
def source_root
|
14
15
|
::File.expand_path('..', __dir__)
|
15
16
|
end
|
@@ -17,7 +18,7 @@ class ::CapistranoDataPlaneApiCommand < ::Thor
|
|
17
18
|
|
18
19
|
desc 'install', 'Install the `capistrano-data_plane_api` gem in your application'
|
19
20
|
|
20
|
-
|
21
|
+
#: -> void
|
21
22
|
def install
|
22
23
|
copy_file 'templates/bin/deploy', 'bin/deploy'
|
23
24
|
chmod 'bin/deploy', 'a+x'
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# typed: true
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require_relative 'symbol'
|
@@ -6,6 +7,7 @@ require_relative 'server'
|
|
6
7
|
module Capistrano
|
7
8
|
module DataPlaneApi
|
8
9
|
class Configuration < Type
|
10
|
+
# Contains the configuration options of a backend
|
9
11
|
class Backend < Type
|
10
12
|
attribute :name, ::Shale::Type::String
|
11
13
|
attribute :styles, Symbol, collection: true
|
@@ -1,18 +1,20 @@
|
|
1
|
+
# typed: true
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Capistrano
|
4
5
|
module DataPlaneApi
|
5
6
|
class Configuration < Type
|
7
|
+
# Contains the configuration options of a server
|
6
8
|
class Server < Type
|
7
9
|
attribute :name, ::Shale::Type::String
|
8
10
|
attribute :stage, ::Shale::Type::String
|
9
11
|
|
10
|
-
|
12
|
+
#: -> String?
|
11
13
|
def stage
|
12
14
|
@stage || @name
|
13
15
|
end
|
14
16
|
|
15
|
-
|
17
|
+
#: -> String?
|
16
18
|
def name
|
17
19
|
@name || @stage
|
18
20
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# typed: true
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'yaml'
|
@@ -8,7 +9,7 @@ require 'shale'
|
|
8
9
|
|
9
10
|
require_relative 'type'
|
10
11
|
|
11
|
-
::Dir[::File.expand_path('configuration/*.rb', __dir__)].
|
12
|
+
::Dir[::File.expand_path('configuration/*.rb', __dir__)].each { require _1 }
|
12
13
|
|
13
14
|
module Capistrano
|
14
15
|
module DataPlaneApi
|
@@ -22,8 +23,7 @@ module Capistrano
|
|
22
23
|
attribute :basic_password, ::Shale::Type::String
|
23
24
|
|
24
25
|
class << self
|
25
|
-
|
26
|
-
# @return [self]
|
26
|
+
#: (String) -> instance
|
27
27
|
def from_file(path)
|
28
28
|
from_yaml ::ERB.new(::File.read(path)).result
|
29
29
|
end
|