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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d181fc9c4bdabc2db5115abbc7c99bae9e06a67e590999d403ae001dfb6ab620
4
- data.tar.gz: ffe647dc7dc05219275650db9ab3324a8c2b9af9fbaa8812e8f4e5330cae6d39
3
+ metadata.gz: d76d1e0c9ec3b53bdbb78f166d620003672b0500242d5fa39680d45061243e7f
4
+ data.tar.gz: ff3e8a9eabafc28721487927f885449ba4cfb9ec8dd5e8d048418f97ca63b7be
5
5
  SHA512:
6
- metadata.gz: 68209170c9cd7db9bfe54a9c3ebce701b23a244a0c26b96f19150e4b38e63dfc1d3276a5afc9ca3c604155fc6234c6815b7500725062860694816796cdb25d1f
7
- data.tar.gz: f2ad2f3fbae440124751d175d8f4083c30b7bd530947ec844049ff91fa190a778ceffad0c2a01250e36919fbaaa22584606e18dcee46bba1e66356394e01a5d4
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 ProcessSettings::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}")
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
- ActiveSupport::Deprecation.warn("`ProcessSettings::Monitor.instance` lazy create is deprecated and will be removed in v1.0. Assign a `FileMonitor` object to `ProcessSettings.instance =` instead.")
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
- ActiveSupport::Deprecation.warn("`ProcessSettings::Monitor.instance` is deprecated and will be removed in v1.0. Assign a `FileMonitor` object to `ProcessSettings.instance =` instead.")
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
- ActiveSupport::Deprecation.warn("ProcessSettings::Monitor.logger is deprecated and will be removed in v1.0.")
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
@@ -73,7 +73,7 @@ module ProcessSettings
73
73
  end
74
74
 
75
75
  def from_file(file_path, only_meta: false)
76
- json_doc = Psych.safe_load_file(file_path, permitted_classes: [Regexp])
76
+ json_doc = Psych.safe_load_file(file_path)
77
77
  from_array(json_doc, only_meta: only_meta)
78
78
  end
79
79
  end
@@ -60,12 +60,18 @@ module ProcessSettings
60
60
 
61
61
  class << self
62
62
  def included(including_klass)
63
- including_klass.define_method(:teardown) do
64
- ProcessSettings.instance = initial_instance
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.warn("ProcessSettings::Testing::MonitorStub is deprecated and will be removed in future versions. Use ProcessSettings::Testing::Monitor instead.", caller)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ProcessSettings
4
- VERSION = '0.20.0.pre.2'
4
+ VERSION = '0.21.0'
5
5
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'active_support'
4
4
  require 'active_support/deprecation'
5
+ require 'active_support/core_ext'
5
6
 
6
7
  module ProcessSettings
7
8
  end
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.20.0.pre.2
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: '4.2'
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: '4.2'
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: 1.3.1
148
+ version: '0'
129
149
  requirements: []
130
- rubygems_version: 3.0.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: []