diff options
author | Thom May <thom@may.lt> | 2016-03-02 17:50:14 +0000 |
---|---|---|
committer | Thom May <thom@may.lt> | 2016-03-02 17:50:14 +0000 |
commit | e6809edfea19a0d30f293714bcbe4427906aa20e (patch) | |
tree | b020f754106a7ec2249fc1f1c29266f872fcd255 | |
parent | dc89358dfd14b326e767b7e4f77ea15f758377ef (diff) | |
parent | e050b900796d559d899714ad5e8e31c0e39a7a0a (diff) | |
download | mixlib-log-e6809edfea19a0d30f293714bcbe4427906aa20e.tar.gz |
Merge pull request #14 from chef/cleanup
Misc cleanup + add Travis
-rw-r--r-- | .travis.yml | 19 | ||||
-rwxr-xr-x | Gemfile | 2 | ||||
-rw-r--r-- | NOTICE | 23 | ||||
-rw-r--r-- | README.md | 51 | ||||
-rw-r--r-- | README.rdoc | 24 | ||||
-rw-r--r-- | Rakefile | 23 | ||||
-rw-r--r-- | features/steps/log.rb | 13 | ||||
-rw-r--r-- | features/support/env.rb | 21 | ||||
-rw-r--r-- | features/support/logit.rb | 10 | ||||
-rw-r--r-- | lib/mixlib/log.rb | 33 | ||||
-rw-r--r-- | lib/mixlib/log/formatter.rb | 22 | ||||
-rw-r--r-- | mixlib-log.gemspec | 20 | ||||
-rw-r--r-- | spec/mixlib/log/formatter_spec.rb | 32 | ||||
-rw-r--r-- | spec/mixlib/log_spec.rb | 51 | ||||
-rw-r--r-- | spec/spec_helper.rb | 20 |
15 files changed, 202 insertions, 162 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..4d116b7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: ruby +cache: bundler + +sudo: false + +branches: + only: + - master + +before_install: + - bundle --version + - gem --version +rvm: + - 2.1 + - 2.2 + +script: + - bundle exec chefstyle + - bundle exec rake spec @@ -1,4 +1,4 @@ -source "http://rubygems.org" +source "https://rubygems.org" gemspec @@ -1,27 +1,28 @@ -Mixin::Log NOTICE -================= +============ +Mixin::Log Notices +============ -Developed at Opscode (http://www.opscode.com). +Developed at Chef (http://www.chef.io). - * Copyright 2009, Opscode, Inc. <legal@opscode.com> + + * Copyright 2009-2016, Chef Software, Inc. <legal@chef.io> Mixin::Log incorporates code from Chef. The Chef notice file follows: -Chef NOTICE -=========== +============ +Chef Notices +============ -Developed at Opscode (http://www.opscode.com). +Developed at Chef (http://www.chef.io). Contributors and Copyright holders: - * Copyright 2008, Adam Jacob <adam@opscode.com> + * Copyright 2008, Adam Jacob <adam@chef.io> * Copyright 2008, Arjuna Christensen <aj@hjksolutions.com> * Copyright 2008, Bryan McLellan <btm@loftninjas.org> * Copyright 2008, Ezra Zygmuntowicz <ezra@engineyard.com> * Copyright 2009, Sean Cribbs <seancribbs@gmail.com> - * Copyright 2009, Christopher Brown <cb@opscode.com> + * Copyright 2009, Christopher Brown <cb@chef.io> * Copyright 2009, Thom May <thom@clearairturbulence.org> Chef incorporates code modified from Open4 (http://www.codeforpeople.com/lib/ruby/open4/), which was written by Ara T. Howard. - -Chef incorporates code modified from Merb (http://www.merbivore.com), which is Copyright (c) 2008 Engine Yard. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac41775 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# Mixlib::Log + +[![Build Status Master](https://travis-ci.org/chef/mixlib-log.svg?branch=master)](https://travis-ci.org/chef/mixlib-log) [![Gem Version](https://badge.fury.io/rb/mixlib-log.svg)](https://badge.fury.io/rb/mixlib-log) + +Mixlib::Log provides a mixin for enabling a class based logger object, a-la Merb, Chef, and Nanite. To use it: + +```ruby +require 'mixlib/log' + +class Log + extend Mixlib::Log +end +``` + +You can then do: + +```ruby +Log.debug('foo') +Log.info('bar') +Log.warn('baz') +Log.error('baz') +Log.fatal('wewt') +``` + +By default, `Mixlib::Logger` logs to STDOUT. To alter this, you should call +Log.init+, passing any arguments to the standard Ruby Logger. For example: + +```ruby +Log.init('/tmp/logfile') # log to /tmp/logfile +Log.init('/tmp/logfile', 7) # log to /tmp/logfile, rotate every day +``` + +Enjoy! + +## LICENSE: + +- Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. +- License:: Apache License, Version 2.0 + +```text +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` diff --git a/README.rdoc b/README.rdoc deleted file mode 100644 index faf9427..0000000 --- a/README.rdoc +++ /dev/null @@ -1,24 +0,0 @@ -== Mixlib::Log - -Mixlib::Log provides a mixin for enabling a class based logger object, a-la Merb, Chef, and Nanite. To use it: - - require 'mixlib/log' - - class Log - extend Mixlib::Log - end - -You can then do: - - Log.debug('foo') - Log.info('bar') - Log.warn('baz') - Log.error('baz') - Log.fatal('wewt') - -By default, <tt>Mixlib::Logger</tt> logs to STDOUT. To alter this, you should call +Log.init+, passing any arguments to the standard Ruby Logger. For example: - - Log.init('/tmp/logfile') # log to /tmp/logfile - Log.init('/tmp/logfile', 7) # log to /tmp/logfile, rotate every day - -Enjoy!
\ No newline at end of file @@ -1,18 +1,18 @@ -require 'rake' -require 'rubygems/package_task' -require 'rdoc/task' -require 'yaml' -require 'rspec/core/rake_task' -require 'cucumber/rake/task' +require "rake" +require "rubygems/package_task" +require "rdoc/task" +require "yaml" +require "rspec/core/rake_task" +require "cucumber/rake/task" -gemspec = eval(IO.read('mixlib-log.gemspec')) +gemspec = eval(IO.read("mixlib-log.gemspec")) Gem::PackageTask.new(gemspec) do |pkg| pkg.gem_spec = gemspec end RSpec::Core::RakeTask.new(:spec) do |spec| - spec.pattern = 'spec/**/*_spec.rb' + spec.pattern = "spec/**/*_spec.rb" end task :default => :spec @@ -21,13 +21,12 @@ task :default => :spec task :test => :spec RDoc::Task.new do |rdoc| - rdoc.rdoc_dir = 'rdoc' + rdoc.rdoc_dir = "rdoc" rdoc.title = "mixlib-log #{Mixlib::Log::VERSION}" - rdoc.rdoc_files.include('README*') - rdoc.rdoc_files.include('lib/**/*.rb') + rdoc.rdoc_files.include("README*") + rdoc.rdoc_files.include("lib/**/*.rb") end Cucumber::Rake::Task.new(:features) do |t| t.cucumber_opts = "--format pretty" end - diff --git a/features/steps/log.rb b/features/steps/log.rb index d8a5070..e16c2d3 100644 --- a/features/steps/log.rb +++ b/features/steps/log.rb @@ -1,14 +1,14 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -37,12 +37,11 @@ When /^the message '(.+)' is sent at the '(.+)' level$/ do |message, level| end end -Then /^the regex '(.+)' should be logged$/ do |regex_string| +Then /^the regex '(.+)' should be logged$/ do |regex_string| regex = Regexp.new(regex_string, Regexp::MULTILINE) regex.match(@output).should_not == nil end -Then /^nothing should be logged$/ do +Then /^nothing should be logged$/ do @output.should == "" end - diff --git a/features/support/env.rb b/features/support/env.rb index d3b315a..e0d2bad 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -1,14 +1,14 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -16,17 +16,17 @@ # limitations under the License. # -$: << File.join(File.dirname(__FILE__), '..', '..', 'lib') +$: << File.join(File.dirname(__FILE__), "..", "..", "lib") -require 'rspec/expectations' -require 'mixlib/log' -require 'tmpdir' -require 'stringio' +require "rspec/expectations" +require "mixlib/log" +require "tmpdir" +require "stringio" class MyWorld def initialize @tmpdir = File.join(Dir.tmpdir, "mixlib_log") - @output = '' + @output = "" @output_io = StringIO.new(@output) Logit.init(@output_io) end @@ -43,4 +43,3 @@ end After do system("rm -rf #{@tmpdir}") end - diff --git a/features/support/logit.rb b/features/support/logit.rb index c388a4b..71b12c6 100644 --- a/features/support/logit.rb +++ b/features/support/logit.rb @@ -1,14 +1,14 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,4 +18,4 @@ class Logit extend Mixlib::Log -end
\ No newline at end of file +end diff --git a/lib/mixlib/log.rb b/lib/mixlib/log.rb index 5ff243d..5f216f9 100644 --- a/lib/mixlib/log.rb +++ b/lib/mixlib/log.rb @@ -1,7 +1,7 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Author:: Christopher Brown (<cb@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Author:: Christopher Brown (<cb@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,19 +16,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -require 'logger' -require 'mixlib/log/version' -require 'mixlib/log/formatter' +require "logger" +require "mixlib/log/version" +require "mixlib/log/formatter" module Mixlib module Log @logger, @loggers = nil - LEVELS = { :debug=>Logger::DEBUG, :info=>Logger::INFO, :warn=>Logger::WARN, :error=>Logger::ERROR, :fatal=>Logger::FATAL}.freeze + LEVELS = { :debug => Logger::DEBUG, :info => Logger::INFO, :warn => Logger::WARN, :error => Logger::ERROR, :fatal => Logger::FATAL }.freeze LEVEL_NAMES = LEVELS.invert.freeze - def reset! @logger, @loggers = nil, nil end @@ -51,7 +50,7 @@ module Mixlib # that had been added to the +loggers+ array will be cleared. def logger=(new_log_device) reset! - @logger=new_log_device + @logger = new_log_device end def use_log_devices(other) @@ -63,7 +62,7 @@ module Mixlib @logger = other.first else msg = "#use_log_devices takes a Mixlib::Log object or array of log devices. " << - "You gave: #{other.inspect}" + "You gave: #{other.inspect}" raise ArgumentError, msg end end @@ -95,14 +94,14 @@ module Mixlib def level=(new_level) level_int = LEVEL_NAMES.key?(new_level) ? new_level : LEVELS[new_level] raise ArgumentError, "Log level must be one of :debug, :info, :warn, :error, or :fatal" if level_int.nil? - loggers.each {|l| l.level = level_int } + loggers.each { |l| l.level = level_int } end - def level(new_level=nil) + def level(new_level = nil) if new_level.nil? LEVEL_NAMES[logger.level] else - self.level=(new_level) + self.level = (new_level) end end @@ -129,11 +128,11 @@ module Mixlib end def <<(msg) - loggers.each {|l| l << msg } + loggers.each { |l| l << msg } end def add(severity, message = nil, progname = nil, &block) - loggers.each {|l| l.add(severity, message, progname, &block) } + loggers.each { |l| l.add(severity, message, progname, &block) } end alias :log :add @@ -142,7 +141,7 @@ module Mixlib # this method gets hit before a call to Mixlib::Logger.init has been made, it will call # Mixlib::Logger.init() with no arguments. def method_missing(method_symbol, *args, &block) - loggers.each {|l| l.send(method_symbol, *args, &block) } + loggers.each { |l| l.send(method_symbol, *args, &block) } end private @@ -150,7 +149,7 @@ module Mixlib def logger_for(*opts) if opts.empty? Logger.new(STDOUT) - elsif LEVELS.keys.inject(true) {|quacks, level| quacks && opts.first.respond_to?(level)} + elsif LEVELS.keys.inject(true) { |quacks, level| quacks && opts.first.respond_to?(level) } opts.first else Logger.new(*opts) diff --git a/lib/mixlib/log/formatter.rb b/lib/mixlib/log/formatter.rb index 0632535..c1eda6d 100644 --- a/lib/mixlib/log/formatter.rb +++ b/lib/mixlib/log/formatter.rb @@ -1,32 +1,32 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -require 'logger' -require 'time' +require "logger" +require "time" module Mixlib module Log class Formatter < Logger::Formatter @@show_time = true - - def self.show_time=(show=false) + + def self.show_time=(show = false) @@show_time = show end - + # Prints a log message as '[time] severity: message' if Chef::Log::Formatter.show_time == true. # Otherwise, doesn't print the time. def call(severity, time, progname, msg) @@ -36,9 +36,9 @@ module Mixlib sprintf("%s: %s\n", severity, msg2str(msg)) end end - + # Converts some argument to a Logger.severity() call to a string. Regular strings pass through like - # normal, Exceptions get formatted as "message (class)\nbacktrace", and other random stuff gets + # normal, Exceptions get formatted as "message (class)\nbacktrace", and other random stuff gets # put through "object.inspect" def msg2str(msg) case msg diff --git a/mixlib-log.gemspec b/mixlib-log.gemspec index 7a504bb..a735341 100644 --- a/mixlib-log.gemspec +++ b/mixlib-log.gemspec @@ -1,19 +1,19 @@ -$:.unshift File.expand_path('../lib', __FILE__) -require 'mixlib/log/version' +$:.unshift File.expand_path("../lib", __FILE__) +require "mixlib/log/version" Gem::Specification.new do |gem| gem.name = "mixlib-log" gem.version = Mixlib::Log::VERSION gem.platform = Gem::Platform::RUBY gem.summary = "A gem that provides a simple mixin for log functionality" - gem.email = "info@opscode.com" - gem.homepage = "http://www.opscode.com" + gem.email = "info@chef.io" + gem.homepage = "https://www.chef.io" gem.license = "Apache-2.0" - gem.authors = ["Opscode, Inc."] + gem.authors = ["Chef Software, Inc."] gem.has_rdoc = true - gem.extra_rdoc_files = ["README.rdoc", "LICENSE", 'NOTICE'] - gem.files = Dir['lib/**/*'] + Dir['spec/**/*'] + ["Gemfile", "Rakefile", ".gemtest", "mixlib-log.gemspec"] - gem.add_development_dependency 'rake' - gem.add_development_dependency 'rspec', '~> 2.10' - gem.add_development_dependency 'cucumber' + gem.extra_rdoc_files = ["README.md", "LICENSE", "NOTICE"] + gem.files = Dir["lib/**/*"] + Dir["spec/**/*"] + ["Gemfile", "Rakefile", ".gemtest", "mixlib-log.gemspec"] + gem.add_development_dependency "rake" + gem.add_development_dependency "rspec", "~> 3.4" + gem.add_development_dependency "cucumber" end diff --git a/spec/mixlib/log/formatter_spec.rb b/spec/mixlib/log/formatter_spec.rb index 1f9c1e5..f4d664b 100644 --- a/spec/mixlib/log/formatter_spec.rb +++ b/spec/mixlib/log/formatter_spec.rb @@ -1,14 +1,14 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -16,36 +16,36 @@ # limitations under the License. # -require 'time' +require "time" require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "spec_helper")) describe Mixlib::Log::Formatter do before(:each) do @formatter = Mixlib::Log::Formatter.new end - + it "should print raw strings with msg2str(string)" do - @formatter.msg2str("nuthin new").should == "nuthin new" + expect(@formatter.msg2str("nuthin new")).to eq("nuthin new") end - + it "should format exceptions properly with msg2str(e)" do e = IOError.new("legendary roots crew") - @formatter.msg2str(e).should == "legendary roots crew (IOError)\n" + expect(@formatter.msg2str(e)).to eq("legendary roots crew (IOError)\n") end - + it "should format random objects via inspect with msg2str(Object)" do - @formatter.msg2str([ "black thought", "?uestlove" ]).should == '["black thought", "?uestlove"]' + expect(@formatter.msg2str([ "black thought", "?uestlove" ])).to eq('["black thought", "?uestlove"]') end - + it "should return a formatted string with call" do time = Time.new Mixlib::Log::Formatter.show_time = true - @formatter.call("monkey", time, "test", "mos def").should == "[#{time.iso8601}] monkey: mos def\n" + expect(@formatter.call("monkey", time, "test", "mos def")).to eq("[#{time.iso8601}] monkey: mos def\n") end - + it "should allow you to turn the time on and off in the output" do Mixlib::Log::Formatter.show_time = false - @formatter.call("monkey", Time.new, "test", "mos def").should == "monkey: mos def\n" + expect(@formatter.call("monkey", Time.new, "test", "mos def")).to eq("monkey: mos def\n") end - + end diff --git a/spec/mixlib/log_spec.rb b/spec/mixlib/log_spec.rb index 640ae81..22b3758 100644 --- a/spec/mixlib/log_spec.rb +++ b/spec/mixlib/log_spec.rb @@ -1,7 +1,7 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Author:: Christopher Brown (<cb@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Author:: Christopher Brown (<cb@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,8 +17,8 @@ # limitations under the License. # -require 'tempfile' -require 'stringio' +require "tempfile" +require "stringio" require File.expand_path(File.join(File.dirname(__FILE__), "..", "spec_helper")) class LoggerLike @@ -49,7 +49,7 @@ describe Mixlib::Log do io = StringIO.new Logit.init(io) Logit << "foo" - io.string.should match(/foo/) + expect(io.string).to match(/foo/) end it "creates a logger with a file name" do @@ -57,7 +57,7 @@ describe Mixlib::Log do Logit.init(tempfile.path) Logit << "bar" tempfile.rewind - tempfile.read.should match(/bar/) + expect(tempfile.read).to match(/bar/) end end @@ -65,18 +65,18 @@ describe Mixlib::Log do logger = LoggerLike.new Logit.init(logger) Logit.debug "qux" - logger.messages.should match(/qux/) + expect(logger.messages).to match(/qux/) end it "should re-initialize the logger if init is called again" do first_logdev, second_logdev = StringIO.new, StringIO.new Logit.init(first_logdev) Logit.fatal "FIRST" - first_logdev.string.should match(/FIRST/) + expect(first_logdev.string).to match(/FIRST/) Logit.init(second_logdev) Logit.fatal "SECOND" - first_logdev.string.should_not match(/SECOND/) - second_logdev.string.should match(/SECOND/) + expect(first_logdev.string).to_not match(/SECOND/) + expect(second_logdev.string).to match(/SECOND/) end it "should set the log level using the binding form, with :debug, :info, :warn, :error, or :fatal" do @@ -89,8 +89,8 @@ describe Mixlib::Log do } levels.each do |symbol, constant| Logit.level = symbol - Logit.logger.level.should == constant - Logit.level.should == symbol + expect(Logit.logger.level).to eq(constant) + expect(Logit.level).to eq(symbol) end end @@ -98,10 +98,9 @@ describe Mixlib::Log do logdev = StringIO.new Logit.init(logdev) Logit.fatal { "the_message" } - logdev.string.should match(/the_message/) + expect(logdev.string).to match(/the_message/) end - it "should set the log level using the method form, with :debug, :info, :warn, :error, or :fatal" do levels = { :debug => Logger::DEBUG, @@ -112,45 +111,43 @@ describe Mixlib::Log do } levels.each do |symbol, constant| Logit.level(symbol) - Logit.logger.level.should == constant + expect(Logit.logger.level).to eq(constant) end end it "should raise an ArgumentError if you try and set the level to something strange using the binding form" do - lambda { Logit.level = :the_roots }.should raise_error(ArgumentError) + expect(lambda { Logit.level = :the_roots }).to raise_error(ArgumentError) end it "should raise an ArgumentError if you try and set the level to something strange using the method form" do - lambda { Logit.level(:the_roots) }.should raise_error(ArgumentError) + expect(lambda { Logit.level(:the_roots) }).to raise_error(ArgumentError) end it "should pass other method calls directly to logger" do Logit.level = :debug - Logit.should be_debug - lambda { Logit.debug("Gimme some sugar!") }.should_not raise_error + expect(Logit).to be_debug + expect(lambda { Logit.debug("Gimme some sugar!") }).to_not raise_error end it "should pass add method calls directly to logger" do logdev = StringIO.new Logit.init(logdev) Logit.level = :debug - Logit.should be_debug - lambda { Logit.add(Logger::DEBUG, "Gimme some sugar!") }.should_not raise_error - logdev.string.should match(/Gimme some sugar/) + expect(Logit).to be_debug + expect(lambda { Logit.add(Logger::DEBUG, "Gimme some sugar!") }).to_not raise_error + expect(logdev.string).to match(/Gimme some sugar/) end it "should default to STDOUT if init is called with no arguments" do logger_mock = Struct.new(:formatter, :level).new - Logger.stub!(:new).and_return(logger_mock) - Logger.should_receive(:new).with(STDOUT).and_return(logger_mock) + expect(Logger).to receive(:new).with(STDOUT).and_return(logger_mock) Logit.init end it "should have by default a base log level of warn" do logger_mock = Struct.new(:formatter, :level).new - Logger.stub!(:new).and_return(logger_mock) Logit.init - Logit.level.should eql(:warn) + expect(Logit.level).to eq(:warn) end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c26a4f0..1789614 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,15 +1,15 @@ # -# Author:: Adam Jacob (<adam@opscode.com>) -# Author:: Christopher Brown (<cb@opscode.com>) -# Copyright:: Copyright (c) 2008 Opscode, Inc. +# Author:: Adam Jacob (<adam@chef.io>) +# Author:: Christopher Brown (<cb@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc.. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,12 +17,12 @@ # limitations under the License. # -$TESTING=true -$:.push File.join(File.dirname(__FILE__), '..', 'lib') +$TESTING = true +$:.push File.join(File.dirname(__FILE__), "..", "lib") -require 'rspec' -require 'mixlib/log' -require 'mixlib/log/formatter' +require "rspec" +require "mixlib/log" +require "mixlib/log/formatter" class Logit extend Mixlib::Log |