process_settings 0.20.0.pre.2 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
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: []