yell 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -74,6 +74,38 @@ logger = Yell.new do |l|
74
74
  end
75
75
  ```
76
76
 
77
+ ### But I'm used to Log4r and I don't want to move on
78
+
79
+ One of the really nice features of Log4r is its repository. The following example is
80
+ taken from the official Log4r [documentation](http://log4r.rubyforge.org/manual.html#outofbox).
81
+
82
+ ```ruby
83
+ require 'log4r'
84
+ include Log4r
85
+
86
+ # create a logger named 'mylog' that logs to stdout
87
+ mylog = Logger.new 'mylog'
88
+ mylog.outputters = Outputter.stdout
89
+
90
+ # later in the code, you can get the logger back
91
+ Logger['mylog']
92
+ ```
93
+
94
+ With Yell you can do the same thing with less:
95
+
96
+ ```ruby
97
+ require 'yell'
98
+
99
+ # create a logger named 'mylog' that logs to stdout
100
+ Yell.new :stdout, :name => 'mylog'
101
+
102
+ # later in the code, you can get the logger back
103
+ Yell['mylog']
104
+ ```
105
+
106
+ There is no need to define outputters separately and you don't have to taint
107
+ you global namespace with Yell's subclasses.
108
+
77
109
 
78
110
  ## Further Readings
79
111
 
data/lib/yell/level.rb CHANGED
@@ -32,7 +32,7 @@ module Yell #:nodoc:
32
32
  # @example Set the level to :warn
33
33
  # level = :warn
34
34
  #
35
- # @param [String, Symbol, Integer] val The minimum log level
35
+ # @param [String, Symbol, Integer] severity The minimum log level
36
36
  def level=( severity )
37
37
  @level = case severity
38
38
  when Yell::Level then severity
data/lib/yell/logger.rb CHANGED
@@ -9,6 +9,9 @@ module Yell #:nodoc:
9
9
  class Logger
10
10
  include Yell::Level::Helpers
11
11
 
12
+ # The name of the logger instance
13
+ attr_reader :name
14
+
12
15
  # Initialize a new Logger
13
16
  #
14
17
  # @example A standard file logger
@@ -48,14 +51,17 @@ module Yell #:nodoc:
48
51
  # set the log level when given
49
52
  self.level = @options[:level]
50
53
 
54
+ # set the loggeer's name
55
+ self.name = @options[:name] if @options[:name]
56
+
51
57
  # extract adapter
52
- adapter args.pop if args.any?
58
+ self.adapter args.pop if args.any?
53
59
 
54
60
  # eval the given block
55
61
  _call( &block ) if block
56
62
 
57
63
  # default adapter when none defined
58
- adapter :file if @adapters.empty?
64
+ self.adapter :file if @adapters.empty?
59
65
  end
60
66
 
61
67
  # Define an adapter to be used for logging.
@@ -88,6 +94,10 @@ module Yell #:nodoc:
88
94
  @adapters << Yell::Adapters.new( type, options, &block )
89
95
  end
90
96
 
97
+ def name=( val )
98
+ Yell::Repository[val] = self
99
+ end
100
+
91
101
  # Deprecated: Use attr_reader in future
92
102
  def level( val = nil )
93
103
  if val.nil?
data/lib/yell/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Yell #:nodoc:
4
- VERSION = "0.13.0"
4
+ VERSION = "0.13.1"
5
5
 
6
6
  end
7
7
 
@@ -47,6 +47,16 @@ describe Yell::Logger do
47
47
  end
48
48
  end
49
49
 
50
+ context "initialize with a :name" do
51
+ let( :name ) { 'test' }
52
+
53
+ it "should be added to the repository" do
54
+ logger = Yell.new :name => name
55
+
56
+ Yell::Repository[name].should == logger
57
+ end
58
+ end
59
+
50
60
  context "initialize with a :filename" do
51
61
  it "should call adapter with :file" do
52
62
  mock.proxy( Yell::Adapters::File ).new( :filename => 'test.log' )
@@ -29,5 +29,13 @@ describe Yell::Repository do
29
29
  it { should == logger }
30
30
  end
31
31
 
32
+ context "[]= with a named logger" do
33
+ before do
34
+ Yell[ name ] = Yell.new :stdout, :name => name
35
+ end
36
+
37
+ it { should_not be_nil }
38
+ end
39
+
32
40
  end
33
41
 
data/spec/yell_spec.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Yell do
4
- subject { Yell.new }
4
+ let( :logger ) { Yell.new }
5
+
6
+ subject { logger }
5
7
 
6
8
  it { should be_kind_of Yell::Logger }
7
9
 
@@ -31,5 +33,25 @@ describe Yell do
31
33
  it { should be_kind_of Yell::Logger }
32
34
  end
33
35
 
36
+ context :[] do
37
+ let( :name ) { 'test' }
38
+
39
+ it "should delegate to the repository" do
40
+ mock( Yell::Repository )[ name ]
41
+
42
+ Yell[ name ]
43
+ end
44
+ end
45
+
46
+ context :[]= do
47
+ let( :name ) { 'test' }
48
+
49
+ it "should delegate to the repository" do
50
+ mock.proxy( Yell::Repository )[name] = logger
51
+
52
+ Yell[ name ] = logger
53
+ end
54
+ end
55
+
34
56
  end
35
57
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.13.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: