Sha256: 67fe1742d62cfa14022a87b72a2cd62498cb6e05b7681eb427c281d00e2177ff

Contents?: true

Size: 1.89 KB

Versions: 18

Compression:

Stored size: 1.89 KB

Contents

#          Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.

require 'spec/helper'
require 'ramaze/log/informer'

describe 'Informer' do
  @out = []
  def @out.puts(*args) push(*args) end
  Ramaze::Logger::Informer.trait[:colorize] = false
  @inform = Ramaze::Logger::Informer.new(@out)

  def format(tag, string)
    /\[\d{4}-\d\d-\d\d \d\d:\d\d:\d\d\] #{tag.to_s.upcase.ljust(5)}  #{Regexp.escape(string)}/
  end

  should 'log #info' do
    @inform.info('Some Info')
    @out.last.should =~ format(:info, 'Some Info')
  end

  should 'log #debug' do
    arr = [:some, :stuff]
    @inform.debug(arr)
    @out.last.should =~ format(:debug, arr.inspect)
  end

  should 'log #warn' do
    @inform.warn('More things')
    @out.last.should =~ format(:warn, 'More things')
  end

  should 'log #error' do
    begin
      raise('Stuff')
    rescue => ex
    end

    @inform.error(ex)
    @out.any?{|o| o =~ format(:error, ex.inspect) }.should.be.true
  end

  should 'choose stdout on init(stdout,:stdout,STDOUT)' do
    a = Ramaze::Logger::Informer.new(STDOUT)
    b = Ramaze::Logger::Informer.new(:stdout)
    c = Ramaze::Logger::Informer.new('stdout')
    [a,b,c].each { |x| x.out.should == $stdout}
  end

  should 'choose stderr on init(stderr,:stderr,STDERR)' do
    a = Ramaze::Logger::Informer.new(STDERR)
    b = Ramaze::Logger::Informer.new(:stderr)
    c = Ramaze::Logger::Informer.new('stderr')
    [a,b,c].each { |x| x.out.should == $stderr}
  end

  should 'use IO when supplied' do
    i = Ramaze::Logger::Informer.new(s = StringIO.new)
    i.out.should == s
  end

  should 'open file otherwise' do
    begin
      i = Ramaze::Logger::Informer.new('tmp.dummy')
      out = i.out
      out.should.be.instance_of(File)
      out.path.should == 'tmp.dummy'
    ensure
      out.close
      File.delete('tmp.dummy')
    end
  end
end

Version data entries

18 entries across 18 versions & 4 rubygems

Version Path
Pistos-ramaze-2009.04.08 spec/ramaze/log/informer.rb
manveru-ramaze-2009.04.01 spec/ramaze/log/informer.rb
manveru-ramaze-2009.04.08 spec/ramaze/log/informer.rb
manveru-ramaze-2009.04.18 spec/ramaze/log/informer.rb
manveru-ramaze-2009.04.22 spec/ramaze/log/informer.rb
manveru-ramaze-2009.04 spec/ramaze/log/informer.rb
manveru-ramaze-2009.05.08 spec/ramaze/log/informer.rb
manveru-ramaze-2009.05 spec/ramaze/log/informer.rb
manveru-ramaze-2009.06.04 spec/ramaze/log/informer.rb
manveru-ramaze-2009.06.12 spec/ramaze/log/informer.rb
manveru-ramaze-2009.06 spec/ramaze/log/informer.rb
rjspotter-ramaze-2009.06.29 spec/ramaze/log/informer.rb
rjspotter-ramaze-2009.06.31 spec/ramaze/log/informer.rb
ramaze-2009.04 spec/ramaze/log/informer.rb
ramaze-2009.05 spec/ramaze/log/informer.rb
ramaze-2009.06.12 spec/ramaze/log/informer.rb
ramaze-2009.06.04 spec/ramaze/log/informer.rb
ramaze-2009.06 spec/ramaze/log/informer.rb