diff --git a/lib/dragonfly/belongs_to_app.rb b/lib/dragonfly/belongs_to_app.rb index e82594e94..ff72a60f7 100644 --- a/lib/dragonfly/belongs_to_app.rb +++ b/lib/dragonfly/belongs_to_app.rb @@ -1,3 +1,5 @@ +require 'logger' + module Dragonfly module BelongsToApp @@ -15,7 +17,7 @@ def app_set? end def log - app.log + app_set? ? app.log : (@log ||= Logger.new(STDOUT)) end end diff --git a/spec/dragonfly/belongs_to_app_spec.rb b/spec/dragonfly/belongs_to_app_spec.rb index 24e36bab8..b9c9cc835 100644 --- a/spec/dragonfly/belongs_to_app_spec.rb +++ b/spec/dragonfly/belongs_to_app_spec.rb @@ -19,11 +19,22 @@ class Testoast it "should say it's not set" do @object.app_set?.should be_false end + it "should still return a log" do + @object.log.should be_a(Logger) + end + it "should cache the log" do + @object.log.should == @object.log + end + it "should return the app's log if it's subsequently set" do + @object.log.should be_a(Logger) + @object.app = (app = mock('app', :log => mock)) + @object.log.should == app.log + end end describe "when the app is set" do before(:each) do - @app = Dragonfly::App[:test] + @app = mock('app', :log => mock) @object.app = @app end