5ba8aa5854
Commit 37d1429ab1d introduced the DummyERB to avoid loading the environment when running `rake -T`. The DummyCompiler simply replaced all output from `<%=` with a fixed string and removed everything else. This worked okay when it was used for YAML values. When using `<%=` within a YAML key, it caused an error in the YAML parser, making it impossible to use ERB as you would expect. For example a `database.yml` file containing the following should be possible: development: <% 5.times do |i| %> shard_<%= i %>: database: db/development_shard_<%= i %>.sqlite3 adapter: sqlite3 <% end %> Instead of using a broken ERB compiler we can temporarily use a `Rails.application.config` that does not raise an error when configurations are accessed which have not been set as described in #35468. This change removes the `DummyCompiler` and uses the standard `ERB::Compiler`. It introduces the `DummyConfig` which delegates all known configurations to the real `Rails::Application::Configuration` instance and returns a dummy string for everything else. This restores the full ERB capabilities without compromising on speed when generating the rake tasks for multiple databases. Deprecates `config.active_record.suppress_multiple_database_warning`. |
||
---|---|---|
.. | ||
dummy | ||
fixtures | ||
integration | ||
system | ||
template | ||
unit | ||
application_system_test_case.rb | ||
test_helper.rb |