rubyconfig / config

Easiest way to add multi-environment yaml settings to Rails, Sinatra, Padrino and other Ruby projects.
Other
2.1k stars 230 forks source link

Converting to hash is creating an error (Ruby 3.2.2, config 5.0, Rails 6.1) #346

Closed camilopayan closed 10 months ago

camilopayan commented 10 months ago

I've updated a Rails 6.1 application to Ruby 3.2.2 and since then, I've had an issue with a specific YAML line (the yaml passes yamllint) when loading the configuration

The error and trace

/Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/ostruct.rb:225:in `block (2 levels) in new_ostruct_member!': wrong number of arguments (given 2, expected 0) (ArgumentError)
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:126:in `[]='
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:182:in `block in __convert'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:172:in `each'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:172:in `__convert'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:176:in `block in __convert'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:172:in `each'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:172:in `__convert'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:176:in `block in __convert'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:172:in `each'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:172:in `__convert'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/options.rb:56:in `reload!'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config.rb:48:in `load_files'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config.rb:56:in `load_and_set_settings'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/integrations/rails/railtie.rb:13:in `preload'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/railties-6.1.7.6/lib/rails/railtie.rb:207:in `public_send'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/railties-6.1.7.6/lib/rails/railtie.rb:207:in `method_missing'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/config-5.0.0/lib/config/integrations/rails/railtie.rb:23:in `block in <class:Railtie>'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-6.1.7.6/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-6.1.7.6/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-6.1.7.6/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-6.1.7.6/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-6.1.7.6/lib/active_support/lazy_load_hooks.rb:51:in `each'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-6.1.7.6/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
        from /Users/camilo/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/railties-6.1.7.6/lib/rails/application.rb:96:in `inherited'

Versions

the yaml

url:
  foo: http://blahblah.example/
  bar: http://yadayada.example/
  baz: http://loremipsum.example/

Most of the block loads, but on the 14th url it fails.

Removing the block as a whole resolves the error.

camilopayan commented 10 months ago

Actually! This may actually be caused because one of the URLs was named send, which i think was overriding the send method. Maybe something to handle!