Sha256: c737f47ad2f5faa357ee3c40bf64353f79063040ef6a0a6708916ba034ab1443

Contents?: true

Size: 1.71 KB

Versions: 60

Compression:

Stored size: 1.71 KB

Contents

require 'spec_helper'

class Testoast
  include Dragonfly::Loggable
end

describe Dragonfly::Loggable do
  
  before(:each) do
    @object = Testoast.new
  end

  shared_examples_for "common" do
    it "should return a log" do
      @object.log.should be_a(Logger)
    end
    it "should cache the log" do
      @object.log.should == @object.log
    end
  end

  describe "without being set" do
    it "should return the log object as nil" do
      @object.log_object.should be_nil
    end
    it_should_behave_like 'common'
  end

  describe "when set" do
    before(:each) do
      @log = Logger.new($stdout)
      @object.log = @log
    end
    it "should return the new log" do
      @object.log.should == @log
    end
    it "should return the log object" do
      @object.log_object.should == @log
    end
    it_should_behave_like 'common'
  end

  describe "when set as a proc" do
    before(:each) do
      @log = Logger.new($stdout)
      @object.log = proc{ @log }
    end
    it "should return the new log" do
      @object.log.should == @log
    end
    it "should return the log object" do
      @object.log_object.should be_a(Proc)
    end
    it "should allow for changing logs" do
      logs = [@log]
      @object.log = proc{ logs[0] }
      @object.log.should == @log
      
      new_log = Logger.new($stdout)
      logs[0] = new_log
      
      @object.log.should == new_log
    end
    it_should_behave_like 'common'
  end
  
  describe "sharing logs" do
    before(:each) do
      @log = Logger.new($stdout)
      @obj1 = Testoast.new
      @obj2 = Testoast.new
    end
    it "should enable sharing logs" do
      @obj1.log = proc{ @log }
      @obj2.use_same_log_as(@obj1)
      @obj2.log.should == @log
    end
  end

end

Version data entries

60 entries across 60 versions & 3 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.7.4 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.7.3 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.7.2 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.7.1 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.7.0 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
dragonfly-0.9.15 spec/dragonfly/loggable_spec.rb
dragonfly-0.9.14 spec/dragonfly/loggable_spec.rb
dragonfly-0.9.13 spec/dragonfly/loggable_spec.rb
classiccms-0.6.9 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.8 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.7 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.6 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.5 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.4 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.3 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.2 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.1 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.6.0 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb
classiccms-0.5.17 vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb