runger_config 3.0.1 → 4.0.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -35
  3. data/README.md +83 -83
  4. data/lib/generators/{anyway → runger}/app_config/app_config_generator.rb +2 -2
  5. data/lib/generators/{anyway → runger}/config/config_generator.rb +3 -3
  6. data/lib/generators/{anyway → runger}/install/install_generator.rb +4 -4
  7. data/lib/generators/{anyway → runger}/install/templates/application_config.rb.tt +1 -1
  8. data/lib/{anyway → runger}/auto_cast.rb +1 -1
  9. data/lib/{anyway → runger}/config.rb +22 -22
  10. data/lib/{anyway → runger}/dynamic_config.rb +2 -2
  11. data/lib/{anyway → runger}/ejson_parser.rb +3 -3
  12. data/lib/{anyway → runger}/env.rb +3 -3
  13. data/lib/{anyway → runger}/ext/deep_dup.rb +1 -1
  14. data/lib/{anyway → runger}/ext/deep_freeze.rb +1 -1
  15. data/lib/{anyway → runger}/ext/flatten_names.rb +1 -1
  16. data/lib/{anyway → runger}/ext/hash.rb +1 -1
  17. data/lib/{anyway → runger}/ext/string_constantize.rb +1 -1
  18. data/lib/{anyway → runger}/loaders/base.rb +2 -2
  19. data/lib/{anyway → runger}/loaders/doppler.rb +2 -2
  20. data/lib/{anyway → runger}/loaders/ejson.rb +3 -3
  21. data/lib/{anyway → runger}/loaders/env.rb +2 -2
  22. data/lib/{anyway → runger}/loaders/yaml.rb +3 -3
  23. data/lib/{anyway → runger}/loaders.rb +6 -6
  24. data/lib/{anyway → runger}/option_parser_builder.rb +1 -1
  25. data/lib/{anyway → runger}/optparse_config.rb +6 -6
  26. data/lib/{anyway → runger}/rails/autoload.rb +5 -5
  27. data/lib/{anyway → runger}/rails/config.rb +3 -3
  28. data/lib/{anyway → runger}/rails/loaders/credentials.rb +2 -2
  29. data/lib/{anyway → runger}/rails/loaders/secrets.rb +3 -3
  30. data/lib/{anyway → runger}/rails/loaders/yaml.rb +2 -2
  31. data/lib/runger/rails/loaders.rb +5 -0
  32. data/lib/{anyway → runger}/rails/settings.rb +2 -2
  33. data/lib/runger/rails.rb +24 -0
  34. data/lib/{anyway → runger}/railtie.rb +7 -7
  35. data/lib/{anyway → runger}/rbs.rb +1 -1
  36. data/lib/{anyway → runger}/settings.rb +4 -4
  37. data/lib/{anyway → runger}/testing/helpers.rb +4 -4
  38. data/lib/{anyway → runger}/testing.rb +2 -2
  39. data/lib/{anyway → runger}/tracing.rb +4 -4
  40. data/lib/{anyway → runger}/type_casting.rb +4 -4
  41. data/lib/{anyway → runger}/utils/deep_merge.rb +2 -2
  42. data/lib/{anyway → runger}/utils/which.rb +1 -1
  43. data/lib/runger/version.rb +5 -0
  44. data/lib/{anyway.rb → runger.rb} +1 -1
  45. data/lib/runger_config.rb +49 -0
  46. data/sig/{anyway_config.rbs → runger_config.rbs} +1 -1
  47. metadata +51 -51
  48. data/lib/anyway/rails/loaders.rb +0 -5
  49. data/lib/anyway/rails.rb +0 -24
  50. data/lib/anyway/version.rb +0 -5
  51. data/lib/anyway_config.rb +0 -49
  52. /data/lib/generators/{anyway → runger}/app_config/USAGE +0 -0
  53. /data/lib/generators/{anyway → runger}/config/USAGE +0 -0
  54. /data/lib/generators/{anyway → runger}/config/templates/config.rb.tt +0 -0
  55. /data/lib/generators/{anyway → runger}/config/templates/config.yml.tt +0 -0
  56. /data/lib/generators/{anyway → runger}/install/USAGE +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9913cb186d9fa49554f9ddd9f44529e6586d5d4890d5eeff5bc795ac401bac23
4
- data.tar.gz: b8a8cbdfe4d3ee4fb274852ce205d3e022fc4e91873a47395474d7bcfceaff52
3
+ metadata.gz: 1b64cf53f84cf85e579523fa523e04afdd2c32dd75b219cf5a700df552368ded
4
+ data.tar.gz: 59459b83f4aff3789c5289a1ed5c33b686dd5012a73eff0ae4627e5eb2e3a3a2
5
5
  SHA512:
6
- metadata.gz: bf55ff77c00ce23aa47e8db1a25978e41aa13a865358a71201e3b6172d00ed22b8cc16d9a1245956505b8b1299b145704e616a25a1270e229897ca93c575b15b
7
- data.tar.gz: 013dc54636c0c3729165384f77abca99755bf1abe9cb271b9c4c4dd92a16533d3533f923ab84af8b8c91828e98f9775e33b96d45fd91a7774402f91bae81fbfd
6
+ metadata.gz: f7b719cb241b1e1d5c4d7d12d1563179e38e68f7aa777142c4ae8d497d13542f1a07c3b17f9ac7c6c9b9117a5b2bb20cbaab5a8b46a07bbab239cda1f3b5703e
7
+ data.tar.gz: 6f2156c5baecc455d4747a70351844c5161e9bb266743ed372dcde9634b6a6054524c354f85629863094e56b9311aa1e706b914ac405412008bb2980ac645bc8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v4.0.0 (2023-11-19)
2
+
3
+ - [BREAKING] Rename from Anyway Config to Runger Config
4
+ - You will now need to `require 'runger_config'`, rather than `require 'anyway_config'`
5
+
1
6
  ## v3.0.1 (2023-11-19)
2
7
 
3
8
  - Fix specs broken by 3.0 release
@@ -38,19 +43,19 @@
38
43
 
39
44
  - Fix Rails detection. ([@palkan][])
40
45
 
41
- Fixes [#134](https://github.com/palkan/anyway_config/issues/134).
46
+ Fixes [#134](https://github.com/palkan/runger_config/issues/134).
42
47
 
43
48
  ## 2.5.0 (2023-07-24)
44
49
 
45
50
  - Generators: Add `config_name` to generated classes if name contains underscore. ([@palkan][])
46
51
 
47
- - Load Rails extensions even if Rails was loaded after Anyway Config. ([@palkan][])
52
+ - Load Rails extensions even if Rails was loaded after Runger Config. ([@palkan][])
48
53
 
49
54
  - Fix handling `config.credentials.content_path` provided as String. ([@palkan][])
50
55
 
51
56
  ## 2.4.2 (2023-06-07)
52
57
 
53
- - Use ANYWAY_ENV as the current environment if defined. ([@palkan][])
58
+ - Use RUNGER_ENV as the current environment if defined. ([@palkan][])
54
59
 
55
60
  It can be used to specify environment for configs independently of Rails environment.
56
61
 
@@ -67,11 +72,11 @@ It can be used to specify environment for configs independently of Rails environ
67
72
  - Added experimental support for sub-configs via coercion. ([@palkan][])
68
73
 
69
74
  ```ruby
70
- class AnotherConfig < Anyway::Config
75
+ class AnotherConfig < Runger::Config
71
76
  attr_config foo: "bar"
72
77
  end
73
78
 
74
- class MyConfig < Anyway::Config
79
+ class MyConfig < Runger::Config
75
80
  attr_config :another_config
76
81
 
77
82
  coerce_types another_config: "AnotherConfig"
@@ -90,7 +95,7 @@ MyConfig.new.another_config.foo #=> "baz"
90
95
  The API is inspired by Rails permitted params:
91
96
 
92
97
  ```ruby
93
- class AppConfig < Anyway::Config
98
+ class AppConfig < Runger::Config
94
99
  attr_config :assets_host, database: {host: nil, port: nil}
95
100
 
96
101
  required :assets_host, database: [:host, :port]
@@ -99,7 +104,7 @@ end
99
104
 
100
105
  - Add support for using `env_prefix ""` to load from unprefixed env vars. ([@palkan][])
101
106
 
102
- See [#118](https://github.com/palkan/anyway_config/issues/118).
107
+ See [#118](https://github.com/palkan/runger_config/issues/118).
103
108
 
104
109
  - Added EJSON support. ([@inner-whisper])
105
110
 
@@ -107,7 +112,7 @@ See [#118](https://github.com/palkan/anyway_config/issues/118).
107
112
 
108
113
  ## 2.3.1 (2023-01-17)
109
114
 
110
- - [Fixes [#110](https://github.com/palkan/anyway_config/issues/110)] Fix setting up autoloader for the same folder. ([@palkan][])
115
+ - [Fixes [#110](https://github.com/palkan/runger_config/issues/110)] Fix setting up autoloader for the same folder. ([@palkan][])
111
116
 
112
117
  - RBS: Now `.on_load` automatically pass block context type (instance), so no need to add annotations! ([@palkan][])
113
118
 
@@ -119,10 +124,10 @@ Steep 1.2+ is required. Read more about the [feature](https://hackmd.io/xLrYaqUt
119
124
 
120
125
  - Add ability to load configurations under specific environments in pure Ruby apps. ([@fargelus][]).
121
126
 
122
- Before loading environment configurations you need to specify variable `Anyway::Settings.current_environment`. In Rails apps this variable is same as `Rails.env` value.
127
+ Before loading environment configurations you need to specify variable `Runger::Settings.current_environment`. In Rails apps this variable is same as `Rails.env` value.
123
128
  After adding yaml loader will try to load params under this environment.
124
129
 
125
- Also required env option was added to `Anyway::Config`.
130
+ Also required env option was added to `Runger::Config`.
126
131
 
127
132
  ## 2.2.3 (2022-01-21)
128
133
 
@@ -130,8 +135,8 @@ Also required env option was added to `Anyway::Config`.
130
135
 
131
136
  - Add ability to set default key for environmental YAML files. ([@skryukov])
132
137
 
133
- Define a key for environmental yaml files to read default values from with `config.anyway_config.default_environmental_key = "default"`.
134
- This way Anyway Config will try to read settings under the `"default"` key and then merge environmental settings into them.
138
+ Define a key for environmental yaml files to read default values from with `config.runger_config.default_environmental_key = "default"`.
139
+ This way Runger Config will try to read settings under the `"default"` key and then merge environmental settings into them.
135
140
 
136
141
  ## 2.2.2 (2020-10-26)
137
142
 
@@ -145,7 +150,7 @@ This way Anyway Config will try to read settings under the `"default"` key and t
145
150
 
146
151
  - Add RBS signatures and generator. ([@palkan][])
147
152
 
148
- Anyway Config now ships with the basic RBS support. To use config types with Steep, add `library "anyway_config"` to your Steepfile.
153
+ Runger Config now ships with the basic RBS support. To use config types with Steep, add `library "runger_config"` to your Steepfile.
149
154
 
150
155
  We also provide an API to generate a signature for you config class: `MyConfig.to_rbs`. You can use this method to generate a scaffold for your config class.
151
156
 
@@ -154,7 +159,7 @@ We also provide an API to generate a signature for you config class: `MyConfig.t
154
159
  Example:
155
160
 
156
161
  ```ruby
157
- class CoolConfig < Anyway::Config
162
+ class CoolConfig < Runger::Config
158
163
  attr_config :port, :user
159
164
 
160
165
  coerce_types port: :string, user: {dob: :date}
@@ -181,28 +186,28 @@ You can also add `.disable_auto_cast!` to your config class to disable automatic
181
186
 
182
187
  Config setters no longer write instance variables.
183
188
 
184
- - Add `config.anyway_config.future` to allow enabling upcoming features. ([@palkan][])
189
+ - Add `config.runger_config.future` to allow enabling upcoming features. ([@palkan][])
185
190
 
186
191
  For smoother upgrades, we provide a mechanism to opt-out to the new defaults beforehand.
187
192
  Currently, only `:unwrap_known_environments` feature could be enabled (see below):
188
193
 
189
194
  ```ruby
190
- config.anyway_config.future.use :unwrap_known_environments
195
+ config.runger_config.future.use :unwrap_known_environments
191
196
  ```
192
197
 
193
198
  - Allow to skip environment keys completely (e.g., `development:`, `test:`) in a config YML when used with Rails. In that case same config is loaded in all known environments (same mechanism as for non-Rails applications)
194
199
 
195
- - Add the `known_environments` property to Anyway::Settings under Rails. Use `config.anyway_config.known_environments << "staging"` to make the gem aware of custom environments. ([@progapandist][])
200
+ - Add the `known_environments` property to Runger::Settings under Rails. Use `config.runger_config.known_environments << "staging"` to make the gem aware of custom environments. ([@progapandist][])
196
201
 
197
202
  - Make it possible to specify default YML configs directory. ([@palkan][])
198
203
 
199
204
  For example:
200
205
 
201
206
  ```ruby
202
- Anyway::Settings.default_config_path = "path/to/configs"
207
+ Runger::Settings.default_config_path = "path/to/configs"
203
208
 
204
209
  # or in Rails
205
- config.anyway_config.default_config_path = Rails.root.join("my/configs")
210
+ config.runger_config.default_config_path = Rails.root.join("my/configs")
206
211
  ```
207
212
 
208
213
  ## 2.0.6 (2020-07-7)
@@ -225,13 +230,13 @@ config.anyway_config.default_config_path = Rails.root.join("my/configs")
225
230
 
226
231
  - Make sure configs are eager loaded in Rails when `config.eager_load = true`. ([@palkan][])
227
232
 
228
- Fixes [#58](https://github.com/palkan/anyway_config/issues/58).
233
+ Fixes [#58](https://github.com/palkan/runger_config/issues/58).
229
234
 
230
235
  ## 2.0.1 (2020-04-15)
231
236
 
232
237
  - Fix loading Railtie when application has been already initialized. ([@palkan][])
233
238
 
234
- Fixes [#56](https://github.com/palkan/anyway_config/issues/56).
239
+ Fixes [#56](https://github.com/palkan/runger_config/issues/56).
235
240
 
236
241
  ## 2.0.0 (2020-04-14)
237
242
 
@@ -244,7 +249,7 @@ Fixes [#56](https://github.com/palkan/anyway_config/issues/56).
244
249
  For example:
245
250
 
246
251
  ```ruby
247
- class MyConfig < Anyway::Config
252
+ class MyConfig < Runger::Config
248
253
  attr_config :key, :secret, debug: false
249
254
  end
250
255
 
@@ -317,13 +322,13 @@ _dynamic_ (runtime) configs.
317
322
  you can set static configs path to `app/configs`:
318
323
 
319
324
  ```ruby
320
- config.anyway_config.autoload_static_config_path = "app/configs"
325
+ config.runger_config.autoload_static_config_path = "app/configs"
321
326
  ```
322
327
 
323
328
  You can do this by running the generator:
324
329
 
325
330
  ```sh
326
- rails g anyway:install --configs-path=app/configs
331
+ rails g runger:install --configs-path=app/configs
327
332
  ```
328
333
 
329
334
  - Add Rails generators. ([@palkan][])
@@ -381,20 +386,20 @@ You can specify some params as required, and the validation
381
386
  error would be raised if they're missing or empty (only for strings):
382
387
 
383
388
  ```ruby
384
- class MyConfig < Anyway::Config
389
+ class MyConfig < Runger::Config
385
390
  attr_config :api_key, :api_secret, :debug
386
391
 
387
392
  required :api_key, :api_secret
388
393
  end
389
394
 
390
- MyConfig.new(api_secret: "") #=> raises Anyway::Config::ValidationError
395
+ MyConfig.new(api_secret: "") #=> raises Runger::Config::ValidationError
391
396
  ```
392
397
 
393
398
  You can change the validation behaviour by overriding the `#validate!` method in your config class.
394
399
 
395
400
  - Validate config attribute names. ([@palkan][])
396
401
 
397
- Do not allow using reserved names (`Anyway::Config` method names).
402
+ Do not allow using reserved names (`Runger::Config` method names).
398
403
  Allow only alphanumeric names (matching `/^[a-z_]([\w]+)?$/`).
399
404
 
400
405
  - Add Loaders API. ([@palkan][])
@@ -420,7 +425,7 @@ Config.new(data)
420
425
 
421
426
  - Add Railtie. ([@palkan][])
422
427
 
423
- `Anyway::Railtie` provides `Anyway::Settings` access via `Rails.applicaiton.configuration.anyway_config`.
428
+ `Runger::Railtie` provides `Runger::Settings` access via `Rails.applicaiton.configuration.runger_config`.
424
429
 
425
430
  It also adds `app/configs` path to autoload paths (low-level, `ActiveSupport::Dependencies`) to
426
431
  make it possible to use configs in the app configuration files.
@@ -441,7 +446,7 @@ Now users can store their personal configurations in _local_ files:
441
446
  - `config/credentials/local.yml.enc` (for Rails 6).
442
447
 
443
448
  Local configs are meant for using in development and only loaded if
444
- `Anyway::Settings.use_local_files` is `true` (which is true by default if
449
+ `Runger::Settings.use_local_files` is `true` (which is true by default if
445
450
  `RACK_ENV` or `RAILS_ENV` env variable is equal to `"development"`).
446
451
 
447
452
  - Add Rails credentials support. ([@palkan][])
@@ -481,14 +486,14 @@ Now it's possible to extend config classes without breaking the original classes
481
486
 
482
487
  - Add OptionParse integration ([@jastkand][])
483
488
 
484
- See more [PR#18](https://github.com/palkan/anyway_config/pull/18).
489
+ See more [PR#18](https://github.com/palkan/runger_config/pull/18).
485
490
 
486
491
  - Use underscored config name as an env prefix. ([@palkan][])
487
492
 
488
493
  For a config class:
489
494
 
490
495
  ```ruby
491
- class MyApp < Anyway::Config
496
+ class MyApp < Runger::Config
492
497
  end
493
498
  ```
494
499
 
@@ -497,7 +502,7 @@ Before this change we use `MYAPP_` prefix, now it's `MY_APP_`.
497
502
  You can specify the prefix explicitly:
498
503
 
499
504
  ```ruby
500
- class MyApp < Anyway::Config
505
+ class MyApp < Runger::Config
501
506
  env_prefix "MYAPP_"
502
507
  end
503
508
  ```
@@ -506,7 +511,7 @@ end
506
511
 
507
512
  - Ruby 2.2 is no longer supported.
508
513
 
509
- - `Anyway::Config.env_prefix` method is introduced. ([@charlie-wasp][])
514
+ - `Runger::Config.env_prefix` method is introduced. ([@charlie-wasp][])
510
515
 
511
516
  ## 1.2.0 (2018-02-19)
512
517
 
@@ -527,7 +532,7 @@ Sniffer::Config.new(
527
532
  )
528
533
  ```
529
534
 
530
- See more [PR#10](https://github.com/palkan/anyway_config/pull/10).
535
+ See more [PR#10](https://github.com/palkan/runger_config/pull/10).
531
536
 
532
537
  ## 1.1.2 (2017-11-19)
533
538
 
@@ -541,7 +546,7 @@ See more [PR#10](https://github.com/palkan/anyway_config/pull/10).
541
546
 
542
547
  - Add `#to_h` method. ([@palkan][])
543
548
 
544
- See [#4](https://github.com/palkan/anyway_config/issues/4).
549
+ See [#4](https://github.com/palkan/runger_config/issues/4).
545
550
 
546
551
  - Make it possible to extend configuration parameters. ([@palkan][])
547
552