CHANGELOG.md in anyway_config-2.1.0 vs CHANGELOG.md in anyway_config-2.2.0

- old
+ new

@@ -1,8 +1,42 @@ # Change log ## master +## 2.2.0 ⛓ + +- Add RBS signatures and generator. ([@palkan][]) + +Anyway Config now ships with the basic RBS support. To use config types with Steep, add `library "anyway_config"` to your Steepfile. + +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. + +- Add type coercion support. ([@palkan][]) + +Example: + +```ruby +class CoolConfig < Anyway::Config + attr_config :port, :user + + coerce_types port: :string, user: {dob: :date} +end + +ENV["COOL_USER__DOB"] = "1989-07-01" + +config = CoolConfig.new({port: 8080}) +config.port == "8080" #=> true +config.user["dob"] == Date.new(1989, 7, 1) #=> true +``` + +You can also add `.disable_auto_cast!` to your config class to disable automatic conversion. + +**Warning** Now values from all sources are coerced (e.g., YAML files). That could lead to a different behaviour. + +- Do not dup modules/classes passed as configuration values. ([@palkan][]) + +- Handle loading empty YAML config files. ([@micahlee][]) + ## 2.1.0 (2020-12-29) - Drop deprecated `attr_config` instance variables support. Config setters no longer write instance variables.