anyway_config 2.5.2 → 2.5.3

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: 3c4d3be4fe0dc48b125dc8eb14be21611e1c9a356953f2a2bdad1444aa21eabe
4
- data.tar.gz: 4796c3d47f70459e0732913997c9fa80ce5a0a604cb86d8d3098a9144a692326
3
+ metadata.gz: d6fee4af14bfa83eab99562506f1dbeaf3826f3da3f204f3f117787aa5b04b9c
4
+ data.tar.gz: 16f081b27030e63ef69ad58a3fae0029fe6c983c2056574b73ef86d9dbb249a5
5
5
  SHA512:
6
- metadata.gz: 7892284a2c1f50287dada83b90be86b11c557a0ec5e5d457a672d9d1db6ba6603299cf5060ca2134dc391f2aa02e3f17f8bcd221b0e8473a55dc99e0bea06ec8
7
- data.tar.gz: f4f276d19c6a8a25ebcf46c1e55f176070691fa7af76b15bebafdf9b36a5716e7c3e1fb5ddcba2d07e741792eff0ed46d373d2b5651ac77c58d0b4527a097e75
6
+ metadata.gz: 0c07338e57bdac6d238e848901c91aabf38011dd7dc4a9c0d39be8a582c5814da411e310f9f7f58d75de06ef2458eb92255bd4889f6f7e0d98b14416cfbcbe35
7
+ data.tar.gz: a51191c4933cac6c78530e7b0f1f3b8c43a5dc8414a1758544ab7f1ebba708e01e99789d0383df365bb0ba9eb71e7137b16a3efc564329f4cd1e2e5bbb70e73a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 2.5.4 (2023-09-12)
6
+
7
+ - Do not activate Rails secrets loaders in 7.1+. ([@palkan][])
8
+
9
+ - Set `use_local_files` depending on `Rails.env`. ([@marshall-lee][])
10
+
5
11
  ## 2.5.2 (2023-08-23)
6
12
 
7
13
  - Disable Rails post-load detection in TruffleRuby. ([@palkan][])
data/README.md CHANGED
@@ -434,7 +434,7 @@ config.anyway_config.default_config_path = ->(name) { Rails.root.join("data", "c
434
434
 
435
435
  - By overriding a specific config YML file path via the `<NAME>_CONF` env variable, e.g., `MYCOOLGEM_CONF=path/to/cool.yml`
436
436
 
437
- 2) **Rails secrets**: `Rails.application.secrets.my_cool_gem` (if `secrets.yml` present).
437
+ 2) (Rails <7.1) **Rails secrets**: `Rails.application.secrets.my_cool_gem` (if `secrets.yml` present).
438
438
 
439
439
  ```yml
440
440
  # config/secrets.yml
@@ -443,6 +443,8 @@ development:
443
443
  port: 4444
444
444
  ```
445
445
 
446
+ **NOTE:** If you want to use secrets with Rails 7.1 (still supported, but deprecated) you must add the corresponding loader manually: `Anyway.loaders.insert_after :yml, :secrets, Anyway::Rails::Loaders::Secrets`.
447
+
446
448
  3) **Rails credentials**: `Rails.application.credentials.my_cool_gem` (if supported):
447
449
 
448
450
  ```yml
@@ -848,11 +850,17 @@ You can use `Anyway::Loaders::Base` as a base class for your loader and define a
848
850
  For example, the [Chamber](https://github.com/thekompanee/chamber) loader could be written as follows:
849
851
 
850
852
  ```ruby
851
- class ChamberConfigLoader < Anyway::Loaders::Base
853
+ class ChamberConfigLoader < Base
852
854
  def call(name:, **_opts)
853
- Chamber.env.to_h[name] || {}
855
+ Chamber.to_hash[name] || {}
856
+ rescue Chamber::Errors::DecryptionFailure => e
857
+ warn "Couldn't decrypt Chamber settings: #{e.message}"
858
+ {}
854
859
  end
855
860
  end
861
+
862
+ # Don't forget to register it
863
+ Anyway.loaders.insert_before :env, :chamber, ChamberConfigLoader
856
864
  ```
857
865
 
858
866
  In order to support [source tracing](#tracing), you need to wrap the resulting Hash via the `#trace!` method with metadata:
@@ -860,7 +868,10 @@ In order to support [source tracing](#tracing), you need to wrap the resulting H
860
868
  ```ruby
861
869
  def call(name:, **_opts)
862
870
  trace!(:chamber) do
863
- Chamber.env.to_h[name] || {}
871
+ Chamber.to_hash[name] || {}
872
+ rescue Chamber::Errors::DecryptionFailure => e
873
+ warn "Couldn't decrypt Chamber settings: #{e.message}"
874
+ {}
864
875
  end
865
876
  end
866
877
  ```
@@ -217,7 +217,8 @@ module Anyway # :nodoc:
217
217
  Utils.deep_merge!(coercion_mapping, mapping)
218
218
 
219
219
  mapping.each do |key, val|
220
- next unless val == :boolean || (val.is_a?(::Hash) && val[:type] == :boolean)
220
+ type = val.is_a?(::Hash) ? val[:type] : val
221
+ next if type != :boolean
221
222
 
222
223
  alias_method :"#{key}?", :"#{key}"
223
224
  end
@@ -100,7 +100,7 @@ module Anyway
100
100
  self.current_environment = ENV["ANYWAY_ENV"]
101
101
 
102
102
  # By default, use local files only in development (that's the purpose if the local files)
103
- self.use_local_files = (ENV["ANYWAY_ENV"] == "development" || ENV["RACK_ENV"] == "development" || ENV["RAILS_ENV"] == "development")
103
+ self.use_local_files = (ENV["ANYWAY_ENV"] == "development" || ENV["RACK_ENV"] == "development" || ENV["RAILS_ENV"] == "development" || (defined?(Rails) && Rails.env.development?))
104
104
 
105
105
  # By default, consider configs are stored in the ./config folder
106
106
  self.default_config_path = ->(name) { "./config/#{name}.yml" }
@@ -217,7 +217,8 @@ module Anyway # :nodoc:
217
217
  Utils.deep_merge!(coercion_mapping, mapping)
218
218
 
219
219
  mapping.each do |key, val|
220
- next unless val == :boolean || (val.is_a?(::Hash) && val[:type] == :boolean)
220
+ type = val.is_a?(::Hash) ? val[:type] : val
221
+ next if type != :boolean
221
222
 
222
223
  alias_method :"#{key}?", :"#{key}"
223
224
  end
@@ -217,7 +217,8 @@ module Anyway # :nodoc:
217
217
  Utils.deep_merge!(coercion_mapping, mapping)
218
218
 
219
219
  mapping.each do |key, val|
220
- next unless val == :boolean || (val.is_a?(::Hash) && val[:type] == :boolean)
220
+ type = val.is_a?(::Hash) ? val[:type] : val
221
+ next if type != :boolean
221
222
 
222
223
  alias_method :"#{key}?", :"#{key}"
223
224
  end
data/lib/anyway/config.rb CHANGED
@@ -217,7 +217,8 @@ module Anyway # :nodoc:
217
217
  Utils.deep_merge!(coercion_mapping, mapping)
218
218
 
219
219
  mapping.each do |key, val|
220
- next unless val == :boolean || (val.is_a?(::Hash) && val[:type] == :boolean)
220
+ type = val.is_a?(::Hash) ? val[:type] : val
221
+ next if type != :boolean
221
222
 
222
223
  alias_method :"#{key}?", :"#{key}"
223
224
  end
data/lib/anyway/rails.rb CHANGED
@@ -11,8 +11,13 @@ require "anyway/rails/loaders"
11
11
 
12
12
  # Configure Rails loaders
13
13
  Anyway.loaders.override :yml, Anyway::Rails::Loaders::YAML
14
- Anyway.loaders.insert_after :yml, :secrets, Anyway::Rails::Loaders::Secrets
15
- Anyway.loaders.insert_after :secrets, :credentials, Anyway::Rails::Loaders::Credentials
14
+
15
+ if Rails::VERSION::MAJOR >= 7 && Rails::VERSION::MINOR >= 1
16
+ Anyway.loaders.insert_after :yml, :credentials, Anyway::Rails::Loaders::Credentials
17
+ else
18
+ Anyway.loaders.insert_after :yml, :secrets, Anyway::Rails::Loaders::Secrets
19
+ Anyway.loaders.insert_after :secrets, :credentials, Anyway::Rails::Loaders::Credentials
20
+ end
16
21
 
17
22
  # Load Railties after configuring loaders.
18
23
  # The application could be already initialized, and that would make `Anyway.loaders` frozen
@@ -100,7 +100,7 @@ module Anyway
100
100
  self.current_environment = ENV["ANYWAY_ENV"]
101
101
 
102
102
  # By default, use local files only in development (that's the purpose if the local files)
103
- self.use_local_files = (ENV["ANYWAY_ENV"] == "development" || ENV["RACK_ENV"] == "development" || ENV["RAILS_ENV"] == "development")
103
+ self.use_local_files = (ENV["ANYWAY_ENV"] == "development" || ENV["RACK_ENV"] == "development" || ENV["RAILS_ENV"] == "development" || (defined?(Rails) && Rails.env.development?))
104
104
 
105
105
  # By default, consider configs are stored in the ./config folder
106
106
  self.default_config_path = ->(name) { "./config/#{name}.yml" }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Anyway # :nodoc:
4
- VERSION = "2.5.2"
4
+ VERSION = "2.5.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anyway_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.2
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-23 00:00:00.000000000 Z
11
+ date: 2023-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-next-core