c a n d l a n d . n e t

Include a Module Based on Rails Environment

Dusty Candland | | rails, ruby

Not sure if this is the best way to do things. But I want to include modules into a class based on the rails environment.

First I used the rails config store, Configurator.

module MyApp
class Application < Rails::Application
# ...
config.provider = :NullProvider
end
end

The above config can be overridden in the environment config file. NullProvider, would just be a noop implementation.

Now, using this is a combo using send, accessing the config value, and getting the class from the symbol.

class MyClass
MyClass.__send__(:include, Kernel.const_get(::MyApp::Application.config.provider))
end

Put that where ever you’re include would normally go.

Would love to know if this is something crazy or a good way to do things.

References

Webmentions

These are webmentions via the IndieWeb and webmention.io. Mention this post from your site: