[Unreleased]
...
[0.6.0] - 2025-04-10
deprecations
Nero.load_config- useNero.load_fileorNero.config_for.
other
- API docs live at https://eval.github.io/nero/
- Config for Rails
Theconfig.config_diris automatically setup, soNero.config_for(formerlyNero.load_config) just works. Nero::Config.dig!⛏️💥
Any (Hash-)result fromNero.load/load_file/config_foris now an instance ofNero::Config.
This class containsdig!, a fail-hard variant ofdig:ruby Nero.load(<<~Y).dig!(:smtp_settings, :hose) # 💥 typo smtp_settings: host: 127.0.0.1 port: 1025 Y #=> 'Nero::DigExt#dig!': path not found [:smtp_settings, :hose] (ArgumentError)
[0.5.0] - 2025-03-20
- tag-classes
AddedNero::BaseTagthat is the basis of all existing tags.
This means that building upon existing tags is easier and custom tags can be more powerful.
Create new tags can be done in 3 ways:
By block (as before, but slightly changed interface):
Nero.configure do |nero|
nero.add_tag("foo") do |tag|
# tag of type Nero::BaseTag
end
end
By re-using existing tags via options:
nero.add_tag("env/upcase", klass: Nero::EnvTag[coerce: :upcase])
Finally, by subclassing Nero::BaseTag. See the section "custom tags" from the README.
!env/floatand!env/float?!env/git_rootand!env/rails_root
Construct a path relative to some root-path:yaml asset_path: !path/rails_root [ public/assets ]Easy to use for your own tags:ruby config.add_tag("path/project_root", klass: Nero::PathRootTag[containing: '.git']) do |path| # possible post-processing end- #2 Add irb to gemfile (@dlibanori)
- #3 Fix missing require (@dlibanori)
[0.4.0] - 2025-02-15
- Add
!ref-tag:ruby Nero.load(<<~YAML) min_threads: !env [MIN_THREADS, !ref [max_threads]] max_threads: 5 end # => {min_threads: 5, max_threads: 5} - Support Psych v3
...so it can used with Rails v6
[0.3.0] - 2025-02-02
- Add configuration
For custom tags:ruby Nero.configure do |nero| nero.add_tag("duration") do |coder| num, duration = coder.seq mult = case duration when /^seconds?/ then 1 when /^minutes?$/ then 60 when /^hours?$/ then 60 *60 when /^days?$/ then 24 * 60 * 60 else raise ArgumentError, "Unknown duration #{coder.seq.inspect}" end num * mult end end...and config_dir:ruby Nero.configure {|nero| nero.config_dir = Rails.root / "config" } - Allow for a
Rails.application.config_forlike experience ```ruby Nero.configure {|nero| nero.config_dir = Rails.root / "config" }
Nero.load_config(:stripe, root: Rails.env) # Returns content of Rails.root / "config/stripe.yml"
- Add `Nero.load` like `YAML.load`
```ruby
Nero.load(<<~YAML)
cache_ttl: !duration [1, day]
end
# => {cache_ttl: 86400}
[0.1.0] - 2025-01-24
- Initial release