anyway_config 2.0.5 → 2.2.1
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/CHANGELOG.md +241 -181
- data/README.md +238 -13
- data/lib/.rbnext/1995.next/anyway/config.rb +438 -0
- data/lib/.rbnext/1995.next/anyway/dynamic_config.rb +31 -0
- data/lib/.rbnext/1995.next/anyway/env.rb +56 -0
- data/lib/.rbnext/1995.next/anyway/loaders/base.rb +21 -0
- data/lib/.rbnext/1995.next/anyway/tracing.rb +181 -0
- data/lib/.rbnext/2.7/anyway/auto_cast.rb +39 -19
- data/lib/.rbnext/2.7/anyway/config.rb +61 -16
- data/lib/.rbnext/2.7/anyway/rails/loaders/yaml.rb +30 -0
- data/lib/.rbnext/2.7/anyway/rbs.rb +92 -0
- data/lib/.rbnext/2.7/anyway/settings.rb +79 -0
- data/lib/.rbnext/2.7/anyway/tracing.rb +6 -6
- data/lib/.rbnext/2.7/anyway/type_casting.rb +143 -0
- data/lib/.rbnext/3.0/anyway/auto_cast.rb +53 -0
- data/lib/.rbnext/{2.8 → 3.0}/anyway/config.rb +61 -16
- data/lib/.rbnext/{2.8 → 3.0}/anyway/loaders/base.rb +0 -0
- data/lib/.rbnext/{2.8 → 3.0}/anyway/loaders.rb +0 -0
- data/lib/.rbnext/{2.8 → 3.0}/anyway/tracing.rb +6 -6
- data/lib/anyway/auto_cast.rb +39 -19
- data/lib/anyway/config.rb +75 -30
- data/lib/anyway/dynamic_config.rb +6 -2
- data/lib/anyway/env.rb +1 -1
- data/lib/anyway/ext/deep_dup.rb +12 -0
- data/lib/anyway/ext/hash.rb +10 -12
- data/lib/anyway/loaders/base.rb +1 -1
- data/lib/anyway/loaders/env.rb +3 -1
- data/lib/anyway/loaders/yaml.rb +9 -5
- data/lib/anyway/option_parser_builder.rb +1 -3
- data/lib/anyway/optparse_config.rb +5 -7
- data/lib/anyway/rails/loaders/credentials.rb +4 -4
- data/lib/anyway/rails/loaders/secrets.rb +6 -8
- data/lib/anyway/rails/loaders/yaml.rb +11 -0
- data/lib/anyway/rails/settings.rb +9 -2
- data/lib/anyway/rbs.rb +92 -0
- data/lib/anyway/settings.rb +52 -2
- data/lib/anyway/tracing.rb +9 -9
- data/lib/anyway/type_casting.rb +134 -0
- data/lib/anyway/utils/deep_merge.rb +21 -0
- data/lib/anyway/version.rb +1 -1
- data/lib/anyway_config.rb +4 -0
- data/sig/anyway_config.rbs +129 -0
- metadata +42 -15
- data/lib/.rbnext/2.7/anyway/option_parser_builder.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0f3278ebf47801b6fdd2836c3f9f63d9a8fc1fe324f04e30f74d2dca179f471
|
4
|
+
data.tar.gz: 8be597f8b2c6065f0ea96e5c58ec54d6ef3532f00d7a8639a963e99b2bba65c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8174b86b24e86de09a55e473bcec74fc37aeca1c38bb2a75e83e71dbeebf512b68fdb93ae23d247cb6a8ae6c5d1e2fbb86d659bf611f83ad219fccabad1ba7b6
|
7
|
+
data.tar.gz: dcf73ae92079a78b8c518cc3059a85848dd4934633269d016b402114279a0303108ab7962477ea2172ff15a1abc9c6401cea9106a83ba9b4c46a02220264eb23
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,79 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
+
## master
|
4
|
+
|
5
|
+
## 2.2.1 (2020-09-28)
|
6
|
+
|
7
|
+
- Minor fixes to the prev release.
|
8
|
+
|
9
|
+
## 2.2.0 ⛓ (2020-09-28)
|
10
|
+
|
11
|
+
- Add RBS signatures and generator. ([@palkan][])
|
12
|
+
|
13
|
+
Anyway Config now ships with the basic RBS support. To use config types with Steep, add `library "anyway_config"` to your Steepfile.
|
14
|
+
|
15
|
+
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.
|
16
|
+
|
17
|
+
- Add type coercion support. ([@palkan][])
|
18
|
+
|
19
|
+
Example:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
class CoolConfig < Anyway::Config
|
23
|
+
attr_config :port, :user
|
24
|
+
|
25
|
+
coerce_types port: :string, user: {dob: :date}
|
26
|
+
end
|
27
|
+
|
28
|
+
ENV["COOL_USER__DOB"] = "1989-07-01"
|
29
|
+
|
30
|
+
config = CoolConfig.new({port: 8080})
|
31
|
+
config.port == "8080" #=> true
|
32
|
+
config.user["dob"] == Date.new(1989, 7, 1) #=> true
|
33
|
+
```
|
34
|
+
|
35
|
+
You can also add `.disable_auto_cast!` to your config class to disable automatic conversion.
|
36
|
+
|
37
|
+
**Warning** Now values from all sources are coerced (e.g., YAML files). That could lead to a different behaviour.
|
38
|
+
|
39
|
+
- Do not dup modules/classes passed as configuration values. ([@palkan][])
|
40
|
+
|
41
|
+
- Handle loading empty YAML config files. ([@micahlee][])
|
42
|
+
|
43
|
+
## 2.1.0 (2020-12-29)
|
44
|
+
|
45
|
+
- Drop deprecated `attr_config` instance variables support.
|
46
|
+
|
47
|
+
Config setters no longer write instance variables.
|
48
|
+
|
49
|
+
- Add `config.anyway_config.future` to allow enabling upcoming features. ([@palkan][])
|
50
|
+
|
51
|
+
For smoother upgrades, we provide a mechanism to opt-out to the new defaults beforehand.
|
52
|
+
Currently, only `:unwrap_known_environments` feature could be enabled (see below):
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
config.anyway_config.future.use :unwrap_known_environments
|
56
|
+
```
|
57
|
+
|
58
|
+
- 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)
|
59
|
+
|
60
|
+
- 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][])
|
61
|
+
|
62
|
+
- Make it possible to specify default YML configs directory. ([@palkan][])
|
63
|
+
|
64
|
+
For example:
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
Anyway::Settings.default_config_path = "path/to/configs"
|
68
|
+
|
69
|
+
# or in Rails
|
70
|
+
config.anyway_config.default_config_path = Rails.root.join("my/configs")
|
71
|
+
```
|
72
|
+
|
73
|
+
## 2.0.6 (2020-07-7)
|
74
|
+
|
75
|
+
- Fix Ruby 2.7 warnings. ([@palkan][])
|
76
|
+
|
3
77
|
## 2.0.5 (2020-05-15)
|
4
78
|
|
5
79
|
- Use `YAML.load` instead of `YAML.safe_laad`. ([@palkan][])
|
@@ -16,13 +90,13 @@
|
|
16
90
|
|
17
91
|
- Make sure configs are eager loaded in Rails when `config.eager_load = true`. ([@palkan][])
|
18
92
|
|
19
|
-
|
93
|
+
Fixes [#58](https://github.com/palkan/anyway_config/issues/58).
|
20
94
|
|
21
95
|
## 2.0.1 (2020-04-15)
|
22
96
|
|
23
97
|
- Fix loading Railtie when application has been already initialized. ([@palkan][])
|
24
98
|
|
25
|
-
|
99
|
+
Fixes [#56](https://github.com/palkan/anyway_config/issues/56).
|
26
100
|
|
27
101
|
## 2.0.0 (2020-04-14)
|
28
102
|
|
@@ -32,166 +106,166 @@
|
|
32
106
|
|
33
107
|
- Add predicate methods for attributes with boolean defaults. ([@palkan][])
|
34
108
|
|
35
|
-
|
109
|
+
For example:
|
36
110
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
111
|
+
```ruby
|
112
|
+
class MyConfig < Anyway::Config
|
113
|
+
attr_config :key, :secret, debug: false
|
114
|
+
end
|
41
115
|
|
42
|
-
|
43
|
-
|
44
|
-
|
116
|
+
MyConfig.new.debug? #=> false
|
117
|
+
MyConfig.new(debug: true).debug? #=> true
|
118
|
+
```
|
45
119
|
|
46
120
|
- Add `Config#deconstruct_keys`. ([@palkan][])
|
47
121
|
|
48
|
-
|
122
|
+
Now you can use configs in pattern matching:
|
49
123
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
124
|
+
```ruby
|
125
|
+
case AWSConfig.new
|
126
|
+
in bucket:, region: "eu-west-1"
|
127
|
+
setup_eu_storage(bucket)
|
128
|
+
in bucket:, region: "us-east-1"
|
129
|
+
setup_us_storage(bucket)
|
130
|
+
end
|
131
|
+
```
|
58
132
|
|
59
133
|
- Add pretty_print support. ([@palkan][])
|
60
134
|
|
61
|
-
|
62
|
-
|
135
|
+
Whenever you use `pp`, the output would contain pretty formatted config information
|
136
|
+
including the sources.
|
63
137
|
|
64
|
-
|
138
|
+
Example:
|
65
139
|
|
66
|
-
|
67
|
-
|
140
|
+
```ruby
|
141
|
+
pp CoolConfig.new
|
68
142
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
143
|
+
# #<CoolConfig
|
144
|
+
# config_name="cool"
|
145
|
+
# env_prefix="COOL"
|
146
|
+
# values:
|
147
|
+
# port => 3334 (type=load),
|
148
|
+
# host => "test.host" (type=yml path=./config/cool.yml),
|
149
|
+
# user =>
|
150
|
+
# name => "john" (type=env key=COOL_USER__NAME),
|
151
|
+
# password => "root" (type=yml path=./config/cool.yml)>
|
152
|
+
```
|
79
153
|
|
80
154
|
- Add source tracing support. ([@palkan][])
|
81
155
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
156
|
+
You can get the information on where a particular parameter value came from
|
157
|
+
(which loader) through via `#to_source_trace` method:
|
158
|
+
|
159
|
+
```ruby
|
160
|
+
conf = MyConfig.new
|
161
|
+
conf.to_source_trace
|
162
|
+
# {
|
163
|
+
# "host" => {value: "test.host", source: {type: :user, called_from: "/rails/root/config/application.rb:21"}},
|
164
|
+
# "user" => {
|
165
|
+
# "name" => {value: "john", source: {type: :env, key: "COOL_USER__NAME"}},
|
166
|
+
# "password" => {value: "root", source: {type: :yml, path: "config/cool.yml"}}
|
167
|
+
# },
|
168
|
+
# "port" => {value: 9292, source: {type: :defaults}}
|
169
|
+
# }
|
170
|
+
```
|
97
171
|
|
98
172
|
- Change the way Rails configs autoloading works. ([@palkan][])
|
99
173
|
|
100
|
-
|
101
|
-
|
174
|
+
In Rails 6, autoloading before initialization is [deprecated](https://github.com/rails/rails/commit/3e66ba91d511158e22f90ff96b594d61f40eda01). We can still
|
175
|
+
make it work by using our own autoloading mechanism (custom Zeitwerk loader).
|
102
176
|
|
103
|
-
|
104
|
-
|
105
|
-
|
177
|
+
This forces us to use a custom directory (not `app/`) for configs required at the boot time.
|
178
|
+
By default, we put _static_ configs into `config/configs` but you can still use `app/configs` for
|
179
|
+
_dynamic_ (runtime) configs.
|
106
180
|
|
107
|
-
|
108
|
-
|
181
|
+
**NOTE:** if you used `app/configs` with 2.0.0.preX and relied on configs during initialization,
|
182
|
+
you can set static configs path to `app/configs`:
|
109
183
|
|
110
|
-
|
111
|
-
|
112
|
-
|
184
|
+
```ruby
|
185
|
+
config.anyway_config.autoload_static_config_path = "app/configs"
|
186
|
+
```
|
113
187
|
|
114
|
-
|
188
|
+
You can do this by running the generator:
|
115
189
|
|
116
|
-
|
117
|
-
|
118
|
-
|
190
|
+
```sh
|
191
|
+
rails g anyway:install --configs-path=app/configs
|
192
|
+
```
|
119
193
|
|
120
194
|
- Add Rails generators. ([@palkan][])
|
121
195
|
|
122
|
-
|
196
|
+
You can create config classes with the predefined attributes like this:
|
123
197
|
|
124
|
-
|
125
|
-
|
126
|
-
|
198
|
+
```sh
|
199
|
+
rails generate config aws access_key_id secret_access_key region
|
200
|
+
```
|
127
201
|
|
128
202
|
- **BREAKING** The accessors generated by `attr_config` are not longer `attr_accessor`-s. ([@palkan][])
|
129
203
|
|
130
|
-
|
131
|
-
|
204
|
+
You cannot rely on instance variables anymore. Instead, you can use `super` when overriding accessors or
|
205
|
+
`values[name]`:
|
132
206
|
|
133
|
-
|
134
|
-
|
207
|
+
```ruby
|
208
|
+
attr_config :host, :port, :url, :meta
|
135
209
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
210
|
+
# override writer to handle type coercion
|
211
|
+
def meta=(val)
|
212
|
+
super JSON.parse(val)
|
213
|
+
end
|
140
214
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
215
|
+
# or override reader to handle missing values
|
216
|
+
def url
|
217
|
+
values[:url] ||= "#{host}:#{port}"
|
218
|
+
end
|
145
219
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
220
|
+
# in <2.1 it's still possible to read instance variables,
|
221
|
+
# i.e. the following would also work
|
222
|
+
def url
|
223
|
+
@url ||= "#{host}:#{port}"
|
224
|
+
end
|
225
|
+
```
|
152
226
|
|
153
|
-
|
154
|
-
|
227
|
+
**NOTE**: we still set instance variables in writers (for backward compatibility), but that would
|
228
|
+
be removed in 2.1.
|
155
229
|
|
156
230
|
- Add `Config#dig` method. ([@palkan][])
|
157
231
|
|
158
232
|
- Add ability to specify types for OptionParser options. ([@palkan][])
|
159
233
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
234
|
+
```ruby
|
235
|
+
describe_options(
|
236
|
+
concurrency: {
|
237
|
+
desc: "number of threads to use",
|
238
|
+
type: String
|
239
|
+
}
|
240
|
+
)
|
241
|
+
```
|
168
242
|
|
169
243
|
- Add param presence validation. ([@palkan][])
|
170
244
|
|
171
|
-
|
172
|
-
|
245
|
+
You can specify some params as required, and the validation
|
246
|
+
error would be raised if they're missing or empty (only for strings):
|
173
247
|
|
174
|
-
|
175
|
-
|
176
|
-
|
248
|
+
```ruby
|
249
|
+
class MyConfig < Anyway::Config
|
250
|
+
attr_config :api_key, :api_secret, :debug
|
177
251
|
|
178
|
-
|
179
|
-
|
252
|
+
required :api_key, :api_secret
|
253
|
+
end
|
180
254
|
|
181
|
-
|
182
|
-
|
255
|
+
MyConfig.new(api_secret: "") #=> raises Anyway::Config::ValidationError
|
256
|
+
```
|
183
257
|
|
184
|
-
|
258
|
+
You can change the validation behaviour by overriding the `#validate!` method in your config class.
|
185
259
|
|
186
260
|
- Validate config attribute names. ([@palkan][])
|
187
261
|
|
188
|
-
|
189
|
-
|
262
|
+
Do not allow using reserved names (`Anyway::Config` method names).
|
263
|
+
Allow only alphanumeric names (matching `/^[a-z_]([\w]+)?$/`).
|
190
264
|
|
191
265
|
- Add Loaders API. ([@palkan][])
|
192
266
|
|
193
|
-
|
194
|
-
|
267
|
+
All config sources have standardized via _loaders_ API. It's possible to define
|
268
|
+
custom loaders or change the sources order.
|
195
269
|
|
196
270
|
## 2.0.0.pre2 (2019-04-26)
|
197
271
|
|
@@ -201,73 +275,58 @@
|
|
201
275
|
|
202
276
|
- **BREAKING** Changed the way of providing explicit values. ([@palkan][])
|
203
277
|
|
204
|
-
|
205
|
-
|
206
|
-
|
278
|
+
```ruby
|
279
|
+
# BEFORE
|
280
|
+
Config.new(overrides: data)
|
207
281
|
|
208
|
-
|
209
|
-
|
210
|
-
|
282
|
+
# AFTER
|
283
|
+
Config.new(data)
|
284
|
+
```
|
211
285
|
|
212
286
|
- Add Railtie. ([@palkan][])
|
213
287
|
|
214
|
-
|
288
|
+
`Anyway::Railtie` provides `Anyway::Settings` access via `Rails.applicaiton.configuration.anyway_config`.
|
215
289
|
|
216
|
-
|
217
|
-
|
290
|
+
It also adds `app/configs` path to autoload paths (low-level, `ActiveSupport::Dependencies`) to
|
291
|
+
make it possible to use configs in the app configuration files.
|
218
292
|
|
219
293
|
- Add test helpers. ([@palkan][])
|
220
294
|
|
221
|
-
|
222
|
-
|
295
|
+
Added `with_env` helper to test code in the context of the specified
|
296
|
+
environment variables.
|
223
297
|
|
224
|
-
|
225
|
-
|
298
|
+
Included automatically in RSpec for examples with the `type: :config` meta
|
299
|
+
or with the `spec/configs` path.
|
226
300
|
|
227
301
|
- Add support for _local_ files. ([@palkan][])
|
228
302
|
|
229
|
-
|
230
|
-
|
231
|
-
|
303
|
+
Now users can store their personal configurations in _local_ files:
|
304
|
+
|
305
|
+
- `<config_name>.local.yml`
|
306
|
+
- `config/credentials/local.yml.enc` (for Rails 6).
|
232
307
|
|
233
|
-
|
234
|
-
|
235
|
-
|
308
|
+
Local configs are meant for using in development and only loaded if
|
309
|
+
`Anyway::Settings.use_local_files` is `true` (which is true by default if
|
310
|
+
`RACK_ENV` or `RAILS_ENV` env variable is equal to `"development"`).
|
236
311
|
|
237
312
|
- Add Rails credentials support. ([@palkan][])
|
238
313
|
|
239
|
-
|
240
|
-
|
314
|
+
The data from credentials is loaded after the data from YAML config and secrets,
|
315
|
+
but before environmental variables (i.e. env variables are _stronger_)
|
241
316
|
|
242
317
|
- Update config name inference logic. ([@palkan][])
|
243
318
|
|
244
|
-
|
245
|
-
- the class name has a form of `<Module>::Config` (`SomeModule::Config => "some_module"`)
|
246
|
-
- the class name has a form of `<Something>Config` (`SomeConfig => "some"`)
|
247
|
-
|
248
|
-
- Fix config classes inheritance. ([@palkan][])
|
319
|
+
Config name is automatically inferred only if:
|
249
320
|
|
250
|
-
|
251
|
-
|
321
|
+
- the class name has a form of `<Module>::Config` (`SomeModule::Config => "some_module"`)
|
322
|
+
- the class name has a form of `<Something>Config` (`SomeConfig => "some"`)
|
252
323
|
|
253
|
-
|
254
|
-
|
255
|
-
Noticeable features:
|
256
|
-
- if `config_name` is explicitly defined on class, it's inherited by subclasses:
|
257
|
-
|
258
|
-
```ruby
|
259
|
-
class MyAppBaseConfig < Anyway::Config
|
260
|
-
config_name :my_app
|
261
|
-
end
|
262
|
-
|
263
|
-
class MyServiceConfig < MyAppBaseConfig
|
264
|
-
end
|
324
|
+
- Fix config classes inheritance. ([@palkan][])
|
265
325
|
|
266
|
-
|
267
|
-
|
326
|
+
Previously, inheritance didn't work due to the lack of proper handling of class-level
|
327
|
+
configuration (naming, option parses settings, defaults).
|
268
328
|
|
269
|
-
|
270
|
-
- option parse extension are not overriden, but added to the parent class extensions
|
329
|
+
Now it's possible to extend config classes without breaking the original classes functionality.
|
271
330
|
|
272
331
|
- **Require Ruby >= 2.5.0.**
|
273
332
|
|
@@ -287,26 +346,26 @@
|
|
287
346
|
|
288
347
|
- Add OptionParse integration ([@jastkand][])
|
289
348
|
|
290
|
-
|
349
|
+
See more [PR#18](https://github.com/palkan/anyway_config/pull/18).
|
291
350
|
|
292
351
|
- Use underscored config name as an env prefix. ([@palkan][])
|
293
352
|
|
294
|
-
|
353
|
+
For a config class:
|
295
354
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
355
|
+
```ruby
|
356
|
+
class MyApp < Anyway::Config
|
357
|
+
end
|
358
|
+
```
|
300
359
|
|
301
|
-
|
360
|
+
Before this change we use `MYAPP_` prefix, now it's `MY_APP_`.
|
302
361
|
|
303
|
-
|
362
|
+
You can specify the prefix explicitly:
|
304
363
|
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
364
|
+
```ruby
|
365
|
+
class MyApp < Anyway::Config
|
366
|
+
env_prefix "MYAPP_"
|
367
|
+
end
|
368
|
+
```
|
310
369
|
|
311
370
|
## 1.3.0 (2018-06-15)
|
312
371
|
|
@@ -322,18 +381,18 @@ Now works on JRuby 9.1+.
|
|
322
381
|
|
323
382
|
- Allow to pass raw hash with explicit values to `Config.new`. ([@dsalahutdinov][])
|
324
383
|
|
325
|
-
|
384
|
+
Example:
|
326
385
|
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
386
|
+
```ruby
|
387
|
+
Sniffer::Config.new(
|
388
|
+
overrides: {
|
389
|
+
enabled: true,
|
390
|
+
storage: {capacity: 500}
|
391
|
+
}
|
392
|
+
)
|
393
|
+
```
|
335
394
|
|
336
|
-
|
395
|
+
See more [PR#10](https://github.com/palkan/anyway_config/pull/10).
|
337
396
|
|
338
397
|
## 1.1.2 (2017-11-19)
|
339
398
|
|
@@ -347,7 +406,7 @@ Now works on JRuby 9.1+.
|
|
347
406
|
|
348
407
|
- Add `#to_h` method. ([@palkan][])
|
349
408
|
|
350
|
-
|
409
|
+
See [#4](https://github.com/palkan/anyway_config/issues/4).
|
351
410
|
|
352
411
|
- Make it possible to extend configuration parameters. ([@palkan][])
|
353
412
|
|
@@ -361,17 +420,18 @@ Now works on JRuby 9.1+.
|
|
361
420
|
|
362
421
|
- Drop `active_support` dependency. ([@palkan][])
|
363
422
|
|
364
|
-
|
423
|
+
Use custom refinements instead of requiring `active_support`.
|
365
424
|
|
366
|
-
|
425
|
+
No we're dependency-free!
|
367
426
|
|
368
427
|
## 0.1.0 (2015-01-20)
|
369
428
|
|
370
|
-
|
429
|
+
- Initial version.
|
371
430
|
|
372
431
|
[@palkan]: https://github.com/palkan
|
373
432
|
[@onemanstartup]: https://github.com/onemanstartup
|
374
433
|
[@dsalahutdinov]: https://github.com/dsalahutdinov
|
375
434
|
[@charlie-wasp]: https://github.com/charlie-wasp
|
376
435
|
[@jastkand]: https://github.com/jastkand
|
377
|
-
[@
|
436
|
+
[@envek]: https://github.com/Envek
|
437
|
+
[@progapandist]: https://github.com/progapandist
|