diff --git a/lib/figaro/rails.rb b/lib/figaro/rails.rb index 18103e5..e7ff7da 100644 --- a/lib/figaro/rails.rb +++ b/lib/figaro/rails.rb @@ -1,9 +1,7 @@ -begin - require "rails" -rescue LoadError -else +# at require-time, we need Rails to be defined to initialize the railtie +# and set the default adapter to the Rails::Application adapter +if defined?(Rails) require "figaro/rails/application" require "figaro/rails/railtie" - Figaro.adapter = Figaro::Rails::Application end diff --git a/spec/figaro/rails/application_spec.rb b/spec/figaro/rails/application_spec.rb index fa49df7..705a432 100644 --- a/spec/figaro/rails/application_spec.rb +++ b/spec/figaro/rails/application_spec.rb @@ -1,6 +1,12 @@ +require 'figaro/rails/application' + module Figaro module Rails describe Application do + before do + stub_const('Rails', double('Rails')) + end + describe "#default_path" do let!(:application) { Application.new } diff --git a/spec/figaro_spec.rb b/spec/figaro_spec.rb index 6d9dbf1..ff9a521 100644 --- a/spec/figaro_spec.rb +++ b/spec/figaro_spec.rb @@ -1,4 +1,11 @@ describe Figaro do + describe 'require' do + it 'does not load Rails' do + require 'figaro' + expect(defined?(Rails)).to be nil + end + end + describe ".env" do it "falls through to Figaro::ENV" do expect(Figaro.env).to eq(Figaro::ENV)