process_settings 0.20.0.pre.2 → 0.21.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/README.md +0 -8
- data/lib/process_settings/helpers/watchdog.rb +1 -1
- data/lib/process_settings/monitor.rb +7 -3
- data/lib/process_settings/target.rb +0 -12
- data/lib/process_settings/targeted_settings.rb +1 -1
- data/lib/process_settings/testing/helpers.rb +9 -3
- data/lib/process_settings/testing/monitor_stub.rb +2 -1
- data/lib/process_settings/version.rb +1 -1
- data/lib/process_settings.rb +1 -0
- metadata +36 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d76d1e0c9ec3b53bdbb78f166d620003672b0500242d5fa39680d45061243e7f
|
|
4
|
+
data.tar.gz: ff3e8a9eabafc28721487927f885449ba4cfb9ec8dd5e8d048418f97ca63b7be
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3a13084cbef64f92f9543c7dec3da30fc8eab685d7fdaa3a727bc8c6731b636062b65fcac8c2090697f260e944989d97b1a125ee4c1530d7a19229511d0ff044
|
|
7
|
+
data.tar.gz: 47ffed7b897c9fbdce282a772cbe2f29ab750464c2cc3d8f9b83980ffdc55d97147eacc1b8d17c78c15c74359f8e7a7734832275c2f824a842cea38909d32941
|
data/README.md
CHANGED
|
@@ -164,14 +164,6 @@ target:
|
|
|
164
164
|
```
|
|
165
165
|
This will be applied in any process that has (`service_name == "frontend"` OR `service_name == "auth"`) AND `datacenter == "AWS-US-EAST-1"`.
|
|
166
166
|
|
|
167
|
-
### Regexp Targeting
|
|
168
|
-
To provide a regular expression for targeting, use the ruby regex keyword `!ruby/regexp` followed by your regular expression. For example:
|
|
169
|
-
```
|
|
170
|
-
target:
|
|
171
|
-
service_name: !ruby/regexp /frontend-\d/
|
|
172
|
-
```
|
|
173
|
-
This will be applied in any process that has `service_name` that has `frontend-` followed with a number. As an example this will match `"frontend-1"`
|
|
174
|
-
|
|
175
167
|
### Precedence
|
|
176
168
|
The settings YAML files are always combined in alphabetical order by file path. Later settings take precedence over the earlier ones.
|
|
177
169
|
|
|
@@ -14,7 +14,7 @@ module ProcessSettings
|
|
|
14
14
|
|
|
15
15
|
def check
|
|
16
16
|
if version_from_memory != version_from_disk && (Time.now - mtime_from_disk) > MAX_MTIME_DIFFERENCE
|
|
17
|
-
raise
|
|
17
|
+
raise OutOfSync.new("ProcessSettings versions are out of sync!\n Version from Disk: #{version_from_disk}\n Version from Memory: #{version_from_memory}\n mtime of file: #{mtime_from_disk}")
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
@@ -12,6 +12,10 @@ module ProcessSettings
|
|
|
12
12
|
attr_reader :logger, :file_path
|
|
13
13
|
attr_writer :instance
|
|
14
14
|
|
|
15
|
+
def deprecator
|
|
16
|
+
@deprecator ||= ActiveSupport::Deprecation.new('1.0', 'ProcessSettings')
|
|
17
|
+
end
|
|
18
|
+
|
|
15
19
|
def file_path=(new_file_path)
|
|
16
20
|
clear_instance
|
|
17
21
|
|
|
@@ -33,18 +37,18 @@ module ProcessSettings
|
|
|
33
37
|
if @instance
|
|
34
38
|
@instance
|
|
35
39
|
else
|
|
36
|
-
|
|
40
|
+
deprecator.warn("`ProcessSettings::Monitor.instance` lazy create is deprecated and will be removed in v1.0. Assign a `FileMonitor` object to `ProcessSettings.instance =` instead.")
|
|
37
41
|
@instance = default_instance
|
|
38
42
|
end
|
|
39
43
|
end
|
|
40
44
|
|
|
41
45
|
def default_instance
|
|
42
|
-
|
|
46
|
+
deprecator.warn("`ProcessSettings::Monitor.instance` is deprecated and will be removed in v1.0. Assign a `FileMonitor` object to `ProcessSettings.instance =` instead.")
|
|
43
47
|
@default_instance ||= new_from_settings
|
|
44
48
|
end
|
|
45
49
|
|
|
46
50
|
def logger=(new_logger)
|
|
47
|
-
|
|
51
|
+
deprecator.warn("ProcessSettings::Monitor.logger is deprecated and will be removed in v1.0.")
|
|
48
52
|
@logger = new_logger
|
|
49
53
|
Listen.logger = new_logger unless Listen.instance_variable_get(:@logger)
|
|
50
54
|
end
|
|
@@ -38,12 +38,6 @@ module ProcessSettings
|
|
|
38
38
|
with_static_context_hash(target_value, static_context_hash)
|
|
39
39
|
when true, false
|
|
40
40
|
!target_value == !static_context_hash
|
|
41
|
-
when Regexp
|
|
42
|
-
if static_context_hash.is_a?(String)
|
|
43
|
-
static_context_hash.match?(target_value)
|
|
44
|
-
else
|
|
45
|
-
static_context_hash == target_value
|
|
46
|
-
end
|
|
47
41
|
else
|
|
48
42
|
target_value == static_context_hash
|
|
49
43
|
end
|
|
@@ -96,12 +90,6 @@ module ProcessSettings
|
|
|
96
90
|
end
|
|
97
91
|
when true, false
|
|
98
92
|
target_value
|
|
99
|
-
when Regexp
|
|
100
|
-
if context_hash.is_a?(String)
|
|
101
|
-
context_hash.match?(target_value)
|
|
102
|
-
else
|
|
103
|
-
context_hash == target_value
|
|
104
|
-
end
|
|
105
93
|
else
|
|
106
94
|
target_value == context_hash
|
|
107
95
|
end
|
|
@@ -60,12 +60,18 @@ module ProcessSettings
|
|
|
60
60
|
|
|
61
61
|
class << self
|
|
62
62
|
def included(including_klass)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
end
|
|
63
|
+
# Prepend the teardown method in case the test class has already defined one.
|
|
64
|
+
including_klass.prepend(TeardownProcessSettings)
|
|
66
65
|
end
|
|
67
66
|
end
|
|
68
67
|
end
|
|
68
|
+
|
|
69
|
+
module TeardownProcessSettings
|
|
70
|
+
def teardown
|
|
71
|
+
ProcessSettings.instance = initial_instance
|
|
72
|
+
super
|
|
73
|
+
end
|
|
74
|
+
end
|
|
69
75
|
end
|
|
70
76
|
|
|
71
77
|
Helpers = RSpec::Helpers # for backward-compatibility
|
|
@@ -13,7 +13,8 @@ module ProcessSettings
|
|
|
13
13
|
class MonitorStub
|
|
14
14
|
class << self
|
|
15
15
|
def new(*_args)
|
|
16
|
-
ActiveSupport::Deprecation.
|
|
16
|
+
deprecator = ActiveSupport::Deprecation.new('1.0', 'ProcessSettings')
|
|
17
|
+
deprecator.warn("ProcessSettings::Testing::MonitorStub is deprecated and will be removed in future versions. Use ProcessSettings::Testing::Monitor instead.", caller)
|
|
17
18
|
super
|
|
18
19
|
end
|
|
19
20
|
end
|
data/lib/process_settings.rb
CHANGED
metadata
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: process_settings
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.21.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Invoca
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
10
|
date: 2019-09-19 00:00:00.000000000 Z
|
|
@@ -16,20 +15,14 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
20
|
-
- - "<"
|
|
21
|
-
- !ruby/object:Gem::Version
|
|
22
|
-
version: '7'
|
|
18
|
+
version: '0'
|
|
23
19
|
type: :runtime
|
|
24
20
|
prerelease: false
|
|
25
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
22
|
requirements:
|
|
27
23
|
- - ">="
|
|
28
24
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
30
|
-
- - "<"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '7'
|
|
25
|
+
version: '0'
|
|
33
26
|
- !ruby/object:Gem::Dependency
|
|
34
27
|
name: json
|
|
35
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,18 +51,46 @@ dependencies:
|
|
|
58
51
|
- - "~>"
|
|
59
52
|
- !ruby/object:Gem::Version
|
|
60
53
|
version: '3.0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: logger
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: ostruct
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
61
82
|
- !ruby/object:Gem::Dependency
|
|
62
83
|
name: psych
|
|
63
84
|
requirement: !ruby/object:Gem::Requirement
|
|
64
85
|
requirements:
|
|
65
|
-
- - "
|
|
86
|
+
- - ">="
|
|
66
87
|
- !ruby/object:Gem::Version
|
|
67
88
|
version: '3.2'
|
|
68
89
|
type: :runtime
|
|
69
90
|
prerelease: false
|
|
70
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
92
|
requirements:
|
|
72
|
-
- - "
|
|
93
|
+
- - ">="
|
|
73
94
|
- !ruby/object:Gem::Version
|
|
74
95
|
version: '3.2'
|
|
75
96
|
description: Targeted process settings that dynamically reload without restarting
|
|
@@ -112,7 +133,6 @@ licenses:
|
|
|
112
133
|
metadata:
|
|
113
134
|
source_code_uri: https://github.com/Invoca/process_settings
|
|
114
135
|
allowed_push_host: https://rubygems.org
|
|
115
|
-
post_install_message:
|
|
116
136
|
rdoc_options: []
|
|
117
137
|
require_paths:
|
|
118
138
|
- lib
|
|
@@ -123,12 +143,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
123
143
|
version: '0'
|
|
124
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
145
|
requirements:
|
|
126
|
-
- - "
|
|
146
|
+
- - ">="
|
|
127
147
|
- !ruby/object:Gem::Version
|
|
128
|
-
version:
|
|
148
|
+
version: '0'
|
|
129
149
|
requirements: []
|
|
130
|
-
rubygems_version: 3.
|
|
131
|
-
signing_key:
|
|
150
|
+
rubygems_version: 3.6.2
|
|
132
151
|
specification_version: 4
|
|
133
152
|
summary: Dynamic process settings
|
|
134
153
|
test_files: []
|