I should clarify what I mean by
> passing the configuration object around

Take this simplification of what I'm seeing in the code
``` ruby
class MyClass
  def initialize(options = {}, configuration = SomeExternalClass.config)
    @instance_config_value = configuration.some_config_value || 'my_own_default'
  end
end
```
in the above example, by setting the second parameter to default to an external class's singleton method, you're unnecessarily coupling class `MyClass` and class `SomeExternalClass`'s singleton method (`config`), and those methods that are defined on whatever `config` returns. This is a clear Law of Demeter violation, i.e. "principle of least knowledge". We're asking the `MyClass` class to know a lot about the `SomeExternalClass` class which it should not know, in particular, that whatever `SomeExternalClass.config` returns, _that_ responds to `some_config_value` being called on it. I can think of a couple of libraries, RSpec, and Capybara being two of them, that have changed their configuration object interfaces several times so practically, "am I breaking contracts all over the codebase that are not immediately obvious to me because they're too far away for me to see" is just one more thing the developer that picks up this code has to worry about.

A simple way to avoid this is to just have the `MyClass` initializer only worry about what it cares about:

``` ruby
class MyClass
  def initialize(options = {})
    @instance_config_value = options[:some_config_value] || 'my_own_default'
  end
end
```