From 81322e4b957a98e4be22ece84640f62dc924fda4 Mon Sep 17 00:00:00 2001 From: Shaun Guth Date: Sat, 27 Jun 2015 20:07:01 -0700 Subject: [PATCH] Don't "require 'rails'" at require-time #205 --- lib/figaro/rails.rb | 8 +++----- spec/figaro/rails/application_spec.rb | 6 ++++++ spec/figaro_spec.rb | 7 +++++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/figaro/rails.rb b/lib/figaro/rails.rb index 18103e5f..e7ff7dae 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 fa49df78..705a4321 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 6d9dbf19..ff9a5210 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)