diff --git a/lib/dotenv/rails.rb b/lib/dotenv/rails.rb index a94442f..2bda6fa 100644 --- a/lib/dotenv/rails.rb +++ b/lib/dotenv/rails.rb @@ -107,5 +107,10 @@ def self.load config.before_configuration { load } end - Railtie = ActiveSupport::Deprecation::DeprecatedConstantProxy.new("Dotenv::Railtie", "Dotenv::Rails", Dotenv::Rails.deprecator) + def self.const_missing(name) + super unless name == :Railtie + + Rails.deprecator.warn("Dotenv::Railtie is deprecated! Use Dotenv::Rails instead.") + Dotenv::Rails + end end diff --git a/spec/dotenv/rails_spec.rb b/spec/dotenv/rails_spec.rb index 59fc678..c2dcc42 100644 --- a/spec/dotenv/rails_spec.rb +++ b/spec/dotenv/rails_spec.rb @@ -214,6 +214,22 @@ end end + describe "Dotenv::Railtie deprecation" do + it "returns Dotenv::Rails" do + allow(Dotenv::Rails.deprecator).to receive(:warn) # prevent deprecation warning from being printed in test output + expect(Dotenv::Railtie).to equal(Dotenv::Rails) + end + + it "emits a deprecation warning" do + expect(Dotenv::Rails.deprecator).to receive(:warn).with(/Dotenv::Railtie is deprecated/) + Dotenv::Railtie + end + + it "does not include :Railtie in Dotenv.constants" do + expect(Dotenv.constants).not_to include(:Railtie) + end + end + def stub_spring(load_watcher: true) spring = Module.new do if load_watcher