yell 1.4.0 → 1.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f9ecfe3dde614dc7aaa4d58f6617323dfd22aa6b
4
- data.tar.gz: a16b4a0ed5c83a1d722570a7d4e92eb0886856ff
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTI3NDViZDY2MmQ1M2JlNjFiYmIxY2RkOWU0NzQ0MWFmY2RiYmNlZQ==
5
+ data.tar.gz: !binary |-
6
+ ZDQxN2VlMjY4Nzc5Nzg3MjZjYmFiYTk3MTg1MjNhODU2ODAzMDE5MQ==
5
7
  SHA512:
6
- metadata.gz: dbfd34addbe7e79d5a0264f927f64bd9808a1cc09dbe4e56fda1b09677e66cdcb20c527e86a75cbb0954bc9f9f3cfd4ef5b67b052c1d19527888fe856d43f116
7
- data.tar.gz: 438d38c8cdd63f08eb32d991eacb04eb1aa1b3bd7020a017d44b954d80bc268c69132ddcc36bdd967c809a57804abfe14656d90912ab2833d878808302e936aa
8
+ metadata.gz: !binary |-
9
+ NDczNmE5NGFlN2E5MGZiNmI0OGNmOTRmYTY2ODliNjc1MDBlZDIyZWFkMzU1
10
+ OTk4NTAwZWFjMDFjMmQzMGU5YTkyNzcwMGE5MTRkODA0ODFiODYwMTM5ZTgy
11
+ ZWVhNWUxNWMwOTU3MTIyZDc2ZThiNTAwNzE3Njk4NDVmMTg2NmM=
12
+ data.tar.gz: !binary |-
13
+ OTNhMGVkY2NmZGQ5NWUwNjU3YmQ1MjY2MGQ4OThhNTFhNTc1MTZhYTA0NGM3
14
+ YmIxYzY1NjZiOTRiM2UzNzNlYjA2NWYxMzg5Y2ExOWVmNjFiYzgwM2Q4YzZi
15
+ ODMyNjU1NzMzN2QxZmNjMTQ2YmRlZDhkOTZmZGU4YmFlOGVmYjQ=
data/Gemfile CHANGED
@@ -9,7 +9,8 @@ group :development, :test do
9
9
  gem 'rspec-core'
10
10
  gem 'rspec-expectations'
11
11
  gem "rr"
12
- gem "timecop"
12
+
13
+ gem 'timecop', '0.6.1'
13
14
 
14
15
  gem 'simplecov', :require => false, :platform => :ruby_20
15
16
  gem 'coveralls', :require => false, :platform => :ruby_20
data/lib/yell.rb CHANGED
@@ -60,8 +60,8 @@ module Yell #:nodoc:
60
60
  # Shortcut to Yell::Fomatter.new
61
61
  #
62
62
  # @return [Yell::Formatter] A Yell::Formatter instance
63
- def format( pattern, date_pattern = nil )
64
- Yell::Formatter.new(pattern, date_pattern)
63
+ def format( pattern = nil, date_pattern = nil, &block )
64
+ Yell::Formatter.new(pattern, date_pattern, &block)
65
65
  end
66
66
 
67
67
  # Loads a config from a YAML file
@@ -71,6 +71,11 @@ module Yell #:nodoc:
71
71
  Yell.new Yell::Configuration.load!(file)
72
72
  end
73
73
 
74
+ # Shortcut to Yell::Adapters.register
75
+ def register( name, klass )
76
+ Yell::Adapters.register(name, klass)
77
+ end
78
+
74
79
  # @private
75
80
  def env
76
81
  return ENV['YELL_ENV'] if ENV.key? 'YELL_ENV'
@@ -105,7 +110,7 @@ end
105
110
 
106
111
  # helpers
107
112
  require File.dirname(__FILE__) + '/yell/helpers/base'
108
- require File.dirname(__FILE__) + '/yell/helpers/adapters'
113
+ require File.dirname(__FILE__) + '/yell/helpers/adapter'
109
114
  require File.dirname(__FILE__) + '/yell/helpers/formatter'
110
115
  require File.dirname(__FILE__) + '/yell/helpers/level'
111
116
  require File.dirname(__FILE__) + '/yell/helpers/tracer'
@@ -124,3 +129,12 @@ require File.dirname(__FILE__) + '/yell/logger'
124
129
  # modules
125
130
  require File.dirname(__FILE__) + '/yell/loggable'
126
131
 
132
+ # register known adapters
133
+ Yell.register :null, Yell::Adapters::Base # adapter that does nothing (for convenience only)
134
+ Yell.register :file, Yell::Adapters::File
135
+ Yell.register :datefile, Yell::Adapters::Datefile
136
+ Yell.register :stdout, Yell::Adapters::Stdout
137
+ Yell.register :stderr, Yell::Adapters::Stderr
138
+
139
+
140
+
data/lib/yell/adapters.rb CHANGED
@@ -39,6 +39,21 @@ module Yell #:nodoc:
39
39
  adapter.new(options, &block)
40
40
  end
41
41
 
42
+ # Thanks, railties :-)
43
+ def self.broadcast( adapter )
44
+ Module.new do
45
+ define_method(:write) do |event|
46
+ adapter.write(event)
47
+ super(event)
48
+ end
49
+
50
+ define_method(:close) do
51
+ adapter.close
52
+ super()
53
+ end
54
+ end
55
+ end
56
+
42
57
  end
43
58
  end
44
59
 
@@ -155,7 +155,7 @@ module Yell #:nodoc:
155
155
  # make sure the adapter is closed and re-raise the exception
156
156
  synchronize { close }
157
157
 
158
- raise( e )
158
+ raise(e)
159
159
  end
160
160
 
161
161
  # Close the adapter (stream, connection, etc).
@@ -172,11 +172,8 @@ module Yell #:nodoc:
172
172
  "#<#{self.class.name} #{inspection * ', '}>"
173
173
  end
174
174
 
175
- private
176
175
 
177
- # def reset!
178
- # super()
179
- # end
176
+ private
180
177
 
181
178
  # Setup the adapter instance.
182
179
  #
@@ -219,7 +216,7 @@ module Yell #:nodoc:
219
216
  #
220
217
  # @return [Boolean] true or false
221
218
  def write?( event )
222
- @level.nil? || @level.at?( event.level )
219
+ @level.nil? || @level.at?(event.level)
223
220
  end
224
221
 
225
222
  # Get an array of inspected attributes for the adapter.
@@ -184,8 +184,6 @@ module Yell #:nodoc:
184
184
 
185
185
  end
186
186
 
187
- register( :datefile, Yell::Adapters::Datefile )
188
-
189
187
  end
190
188
  end
191
189
 
@@ -31,8 +31,6 @@ module Yell #:nodoc:
31
31
 
32
32
  end
33
33
 
34
- register( :file, Yell::Adapters::File )
35
-
36
34
  end
37
35
  end
38
36
 
@@ -27,9 +27,6 @@ module Yell #:nodoc:
27
27
 
28
28
  end
29
29
 
30
- register( :stdout, Yell::Adapters::Stdout )
31
- register( :stderr, Yell::Adapters::Stderr )
32
-
33
30
  end
34
31
  end
35
32
 
data/lib/yell/event.rb CHANGED
@@ -27,10 +27,14 @@ module Yell #:nodoc:
27
27
  # Accessor to the time the log event occured
28
28
  attr_reader :time
29
29
 
30
+ # Accessor to the logger's name
31
+ attr_reader :name
32
+
30
33
 
31
34
  def initialize(logger, level, *messages, &block)
32
- @time = Time.now
33
- @level = level
35
+ @time = Time.now
36
+ @level = level
37
+ @name = logger.name
34
38
 
35
39
  @messages = messages
36
40
  @messages << block.call if block
@@ -58,7 +58,8 @@ module Yell #:nodoc:
58
58
  "F" => "event.file", # Path with filename where the logger was called
59
59
  "f" => "File.basename(event.file)", # Filename where the loger was called
60
60
  "M" => "event.method", # Method name where the logger was called
61
- "n" => "event.line" # Line where the logger was called
61
+ "n" => "event.line", # Line where the logger was called
62
+ "N" => "event.name" # Name of the logger
62
63
  }
63
64
 
64
65
  Matcher = /([^%]*)(%\d*)?(#{Table.keys.join('|')})?(.*)/
@@ -66,12 +67,29 @@ module Yell #:nodoc:
66
67
 
67
68
  # Initializes a new +Yell::Formatter+.
68
69
  #
69
- # Upon initialization it defines a format method. `format` takes
70
- # a {Yell::Event} instance as agument in order to apply for desired log
70
+ # Upon initialization it defines a format method. `format` takes
71
+ # a {Yell::Event} instance as agument in order to apply for desired log
71
72
  # message formatting.
72
- def initialize( pattern = nil, date_pattern = nil )
73
- @pattern = pattern || Yell::DefaultFormat
74
- @date_pattern = date_pattern || :iso8601
73
+ #
74
+ # @example Blank formatter
75
+ # Formatter.new
76
+ #
77
+ # @example Formatter with a message pattern
78
+ # Formatter.new("%d [%5L] %p : %m")
79
+ #
80
+ # @example Formatter with a message and date pattern
81
+ # Formatter.new("%d [%5L] %p : %m", "%D %H:%M:%S.%L")
82
+ #
83
+ # @example Formatter with a message modifier
84
+ # Formatter.new do |f|
85
+ # f.modify(Hash) { |h| "Hash: #{h.inspect}" }
86
+ # end
87
+ def initialize( *args, &block )
88
+ builder = Builder.new(*args, &block)
89
+
90
+ @pattern = builder.pattern
91
+ @date_pattern = builder.date_pattern
92
+ @modifier = builder.modifier
75
93
 
76
94
  define_date_method!
77
95
  define_format_method!
@@ -85,6 +103,51 @@ module Yell #:nodoc:
85
103
 
86
104
  private
87
105
 
106
+ # Message modifier class to allow different modifiers for different requirements.
107
+ class Modifier
108
+ def initialize
109
+ @repository = {}
110
+ end
111
+
112
+ def set( key, &block )
113
+ @repository.merge!(key => block)
114
+ end
115
+
116
+ def call( message )
117
+ case
118
+ when mod = @repository[message.class] || @repository[message.class.to_s]
119
+ mod.call(message)
120
+ when message.is_a?(Hash)
121
+ message.map { |k,v| "#{k}: #{v}" }.join(", ")
122
+ when message.is_a?(Exception)
123
+ backtrace = message.backtrace ? "\n\t#{message.backtrace.join("\n\t")}" : ""
124
+ sprintf("%s: %s%s", message.class, message.message, backtrace)
125
+ else
126
+ message
127
+ end
128
+ end
129
+ end
130
+
131
+ # Builder class to allow setters that won't be accessible once
132
+ # transferred to the Formatter
133
+ class Builder
134
+ attr_accessor :pattern, :date_pattern
135
+ attr_reader :modifier
136
+
137
+ def initialize( pattern = nil, date_pattern = nil, &block )
138
+ @modifier = Modifier.new
139
+
140
+ @pattern = pattern || Yell::DefaultFormat
141
+ @date_pattern = date_pattern || :iso8601
142
+
143
+ block.call(self) if block
144
+ end
145
+
146
+ def modify( key, &block )
147
+ modifier.set(key, &block)
148
+ end
149
+ end
150
+
88
151
  def define_date_method!
89
152
  buf = case @date_pattern
90
153
  when String then "t.strftime(@date_pattern)"
@@ -141,19 +204,7 @@ module Yell #:nodoc:
141
204
  end
142
205
 
143
206
  def message( *messages )
144
- messages.map { |m| to_message(m) }.join(" ")
145
- end
146
-
147
- def to_message( m )
148
- case m
149
- when Hash
150
- m.map { |k,v| "#{k}: #{v}" }.join( ", " )
151
- when Exception
152
- backtrace = m.backtrace ? "\n\t#{m.backtrace.join("\n\t")}" : ""
153
- sprintf("%s: %s%s", m.class, m.message, backtrace)
154
- else
155
- m
156
- end
207
+ messages.map { |m| @modifier.call(m) }.join(" ")
157
208
  end
158
209
 
159
210
  end
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  module Yell #:nodoc:
3
3
  module Helpers #:nodoc:
4
- module Adapters #:nodoc:
4
+ module Adapter #:nodoc:
5
5
 
6
6
  # Define an adapter to be used for logging.
7
7
  #
@@ -18,29 +18,38 @@ module Yell #:nodoc:
18
18
  # adapter :file, 'development.log', :level => :warn
19
19
  #
20
20
  # @example Set the adapter directly from an adapter instance
21
- # adapter( Yell::Adapter::File.new )
21
+ # adapter Yell::Adapter::File.new
22
22
  #
23
23
  # @param [Symbol] type The type of the adapter, may be `:file` or `:datefile` (default `:file`)
24
24
  # @return [Yell::Adapter] The instance
25
25
  # @raise [Yell::NoSuchAdapter] Will be thrown when the adapter is not defined
26
26
  def adapter( type = :file, *args, &block )
27
- options = [@options, *args].inject( Hash.new ) do |h, c|
27
+ options = [@options, *args].inject(Hash.new) do |h, c|
28
28
  h.merge( [String, Pathname].include?(c.class) ? {:filename => c} : c )
29
29
  end
30
30
 
31
- @adapters << Yell::Adapters.new(type, options, &block)
31
+ new_adapter = Yell::Adapters.new(type, options, &block)
32
+
33
+ # Also replaces the :null logger of type Yell::Adapters::Base
34
+ if @_adapter.nil? || @_adapter.instance_of?(Yell::Adapters::Base)
35
+ @_adapter = new_adapter
36
+ else
37
+ @_adapter.extend(Yell::Adapters.broadcast(new_adapter))
38
+ end
39
+
40
+ _adapter
32
41
  end
33
42
 
34
43
  # @private
35
- def adapters
36
- @adapters
44
+ def _adapter
45
+ @_adapter
37
46
  end
38
47
 
39
48
 
40
49
  private
41
50
 
42
51
  def reset!
43
- @adapters = []
52
+ @_adapter = nil
44
53
 
45
54
  super
46
55
  end
data/lib/yell/logger.rb CHANGED
@@ -38,7 +38,7 @@ module Yell #:nodoc:
38
38
  include Yell::Helpers::Base
39
39
  include Yell::Helpers::Level
40
40
  include Yell::Helpers::Formatter
41
- include Yell::Helpers::Adapters
41
+ include Yell::Helpers::Adapter
42
42
  include Yell::Helpers::Tracer
43
43
  include Yell::Helpers::Silencer
44
44
 
@@ -74,14 +74,14 @@ module Yell #:nodoc:
74
74
  @options = args.last.is_a?(Hash) ? args.pop : {}
75
75
 
76
76
  # adapters may be passed in the options
77
- extract!(@options)
77
+ extract!(*@options[:adapters]) if @options.key?(:adapters)
78
78
 
79
79
  # check if filename was given as argument and put it into the @options
80
80
  if [String, Pathname].include?(args.last.class)
81
81
  @options[:filename] = args.pop unless @options[:filename]
82
82
  end
83
83
 
84
- self.level = @options.fetch(:level, 0) # debug by defauly
84
+ self.level = @options.fetch(:level, 0) # debug by default
85
85
  self.name = @options.fetch(:name, nil) # no name by default
86
86
  self.trace = @options.fetch(:trace, :error) # trace from :error level onwards
87
87
 
@@ -95,7 +95,7 @@ module Yell #:nodoc:
95
95
  block.arity > 0 ? block.call(self) : instance_eval(&block) if block_given?
96
96
 
97
97
  # default adapter when none defined
98
- self.adapter(:file) if adapters.empty?
98
+ self.adapter(:file) if _adapter.nil?
99
99
  end
100
100
 
101
101
 
@@ -138,12 +138,12 @@ module Yell #:nodoc:
138
138
  # Get a pretty string representation of the logger.
139
139
  def inspect
140
140
  inspection = inspectables.map { |m| "#{m}: #{send(m).inspect}" }
141
- "#<#{self.class.name} #{inspection * ', '}, adapters: #{adapters.map(&:inspect) * ', '}>"
141
+ "#<#{self.class.name} #{inspection * ', '}>"
142
142
  end
143
143
 
144
144
  # @private
145
145
  def close
146
- @adapters.each(&:close)
146
+ _adapter.close
147
147
  end
148
148
 
149
149
 
@@ -153,22 +153,22 @@ module Yell #:nodoc:
153
153
  # multiple variations:
154
154
  #
155
155
  # @example
156
- # options = { :adapters => [:stdout, :stderr] }
156
+ # extract!(:stdout, :stderr)
157
157
  #
158
158
  # @example
159
- # options = { :adapters => [:stdout => {:level => :info}, :stderr => {:level => :error}]
160
- def extract!( opts )
161
- ( opts.delete(:adapters) || [] ).each do |a|
159
+ # extract!(:stdout => {:level => :info}, :stderr => {:level => :error})
160
+ def extract!( *adapters )
161
+ adapters.each do |a|
162
162
  case a
163
- when String, Symbol then adapter( a )
164
- else a.each { |n, o| adapter( n, o || {} ) }
163
+ when Hash then a.each { |t, o| adapter(t, o) }
164
+ else adapter(a)
165
165
  end
166
166
  end
167
167
  end
168
168
 
169
169
  # Cycles all the adapters and writes the message
170
170
  def write( event )
171
- adapters.each { |a| a.write(event) }
171
+ _adapter.write(event)
172
172
  end
173
173
 
174
174
  # Get an array of inspected attributes for the adapter.
data/lib/yell/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Yell #:nodoc:
4
- VERSION = "1.4.0"
4
+ VERSION = "1.5.0"
5
5
 
6
6
  end
7
7
 
@@ -96,5 +96,6 @@ describe "running Yell multi-threaded" do
96
96
  def datefile_pattern_for( time )
97
97
  time.strftime(Yell::Adapters::Datefile::DefaultDatePattern)
98
98
  end
99
+
99
100
  end
100
101
 
@@ -2,20 +2,22 @@ require 'spec_helper'
2
2
 
3
3
  describe Yell::Formatter do
4
4
 
5
- let(:logger) { Yell::Logger.new }
6
- let(:event) { Yell::Event.new(logger, 1, 'Hello World!') }
7
- let(:time) { Time.now }
5
+ let(:logger) { Yell::Logger.new(:stdout, :name => 'Yell') }
6
+ let(:message) { "Hello World!" }
7
+ let(:event) { Yell::Event.new(logger, 1, message) }
8
8
 
9
9
  let(:pattern) { "%m" }
10
10
  let(:formatter) { Yell::Formatter.new(pattern) }
11
11
 
12
+ let(:time) { Time.now }
13
+
14
+ subject { formatter.format(event) }
15
+
12
16
  before do
13
17
  Timecop.freeze(time)
14
18
  end
15
19
 
16
- describe "#format" do
17
- subject { formatter.format(event) }
18
-
20
+ describe "patterns" do
19
21
  context "%m" do
20
22
  let(:pattern) { "%m" }
21
23
  it { should eq(event.messages.join(' ')) }
@@ -45,6 +47,7 @@ describe Yell::Formatter do
45
47
  let(:pattern) { "%P" }
46
48
  it { should eq(event.progname) }
47
49
  end
50
+
48
51
  context "%t" do
49
52
  let(:pattern) { "%t" }
50
53
  it { should eq(event.thread_id.to_s) }
@@ -86,11 +89,14 @@ describe Yell::Formatter do
86
89
  it { should eq("123") }
87
90
  end
88
91
  end
89
- end
90
92
 
91
- describe "#format from presets" do
92
- subject { formatter.format(event) }
93
+ context "%N" do
94
+ let(:pattern) { "%N" }
95
+ it { should eq("Yell") }
96
+ end
97
+ end
93
98
 
99
+ describe "presets" do
94
100
  context "NoFormat" do
95
101
  let(:pattern) { Yell::NoFormat }
96
102
  it { should eq("Hello World!") }
@@ -112,25 +118,29 @@ describe Yell::Formatter do
112
118
  end
113
119
  end
114
120
 
115
- describe "#format from exception" do
116
- let(:exception) { StandardError.new( "This is an Exception" ) }
117
- let(:event) { Yell::Event.new(logger, 1, exception) }
118
- subject { formatter.format(event) }
121
+ describe "Exception" do
122
+ let(:message) { StandardError.new("This is an Exception") }
119
123
 
120
124
  before do
121
- mock(exception).backtrace.times(any_times) { ["backtrace"] }
125
+ stub(message).backtrace { ["backtrace"] }
122
126
  end
123
127
 
124
128
  it { should eq("StandardError: This is an Exception\n\tbacktrace") }
125
129
  end
126
130
 
127
- describe "#format from hash messages" do
128
- let(:hash) { { :test => 'message' } }
129
- let(:event) { Yell::Event.new(logger, 1, hash) }
130
- subject { formatter.format(event) }
131
+ describe "Hash" do
132
+ let(:message) { {:test => 'message'} }
131
133
 
132
134
  it { should eq("test: message") }
133
135
  end
134
136
 
137
+ describe "custom message modifiers" do
138
+ let(:formatter) do
139
+ Yell::Formatter.new(pattern) { |f| f.modify(String) { |m| "Modified! #{m}" } }
140
+ end
141
+
142
+ it { should eq("Modified! #{message}") }
143
+ end
144
+
135
145
  end
136
146
 
@@ -41,11 +41,10 @@ describe Yell::Logger do
41
41
  it { should respond_to(:unknown?) }
42
42
  end
43
43
 
44
- context "default #adapters" do
45
- subject { logger.adapters }
44
+ context "default #adapter" do
45
+ subject { logger._adapter }
46
46
 
47
- its(:size) { should eq(1) }
48
- its(:first) { should be_kind_of(Yell::Adapters::File) }
47
+ it { should be_kind_of(Yell::Adapters::File) }
49
48
  end
50
49
 
51
50
  context "default #level" do
@@ -67,6 +66,10 @@ describe Yell::Logger do
67
66
  let(:name) { 'test' }
68
67
  let!(:logger) { Yell.new(:name => name) }
69
68
 
69
+ it "should set the name correctly" do
70
+ expect(logger.name).to eq(name)
71
+ end
72
+
70
73
  it "should be added to the repository" do
71
74
  expect(Yell::Repository[name]).to eq(logger)
72
75
  end
@@ -152,8 +155,7 @@ describe Yell::Logger do
152
155
  end
153
156
 
154
157
  its(:level) { should eq(level) }
155
- its('adapters.size') { should eq(1) }
156
- its('adapters.first') { should be_instance_of(Yell::Adapters::Stdout) }
158
+ its(:_adapter) { should be_instance_of(Yell::Adapters::Stdout) }
157
159
  end
158
160
 
159
161
  context "without arity" do
@@ -162,31 +164,18 @@ describe Yell::Logger do
162
164
  end
163
165
 
164
166
  its(:level) { should eq(level) }
165
- its('adapters.size') { should eq(1) }
166
- its('adapters.first') { should be_instance_of(Yell::Adapters::Stdout) }
167
+ its(:_adapter) { should be_instance_of(Yell::Adapters::Stdout) }
167
168
  end
168
169
  end
169
170
 
170
171
  context "initialize with #adapters option" do
171
- let(:logger) do
172
- Yell::Logger.new(:adapters => [:stdout, {:stderr => {:level => :error}}])
173
- end
174
-
175
- let(:adapters) { logger.instance_variable_get(:@adapters) }
176
- let(:stdout) { adapters.first }
177
- let(:stderr) { adapters.last }
178
-
179
- it "should define those adapters" do
180
- expect(adapters.size).to eq(2)
181
-
182
- expect(stdout).to be_kind_of(Yell::Adapters::Stdout)
183
- expect(stderr).to be_kind_of(Yell::Adapters::Stderr)
184
- end
172
+ it "should set adapters in logger correctly" do
173
+ any_instance_of(Yell::Logger) do |logger|
174
+ mock.proxy(logger).adapter(:stdout)
175
+ mock.proxy(logger).adapter(:stderr, :level => :error)
176
+ end
185
177
 
186
- it "should pass :level to :stderr adapter" do
187
- expect(stderr.level.at?(:warn)).to be_false
188
- expect(stderr.level.at?(:error)).to be_true
189
- expect(stderr.level.at?(:fatal)).to be_true
178
+ Yell::Logger.new(:adapters => [:stdout, {:stderr => {:level => :error}}])
190
179
  end
191
180
  end
192
181
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yell
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rudolf Schmidt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-20 00:00:00.000000000 Z
11
+ date: 2013-10-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Yell - Your Extensible Logging Library. Define multiple adapters, various
14
14
  log level combinations or message formatting options like you've never done before
@@ -45,7 +45,7 @@ files:
45
45
  - lib/yell/configuration.rb
46
46
  - lib/yell/event.rb
47
47
  - lib/yell/formatter.rb
48
- - lib/yell/helpers/adapters.rb
48
+ - lib/yell/helpers/adapter.rb
49
49
  - lib/yell/helpers/base.rb
50
50
  - lib/yell/helpers/formatter.rb
51
51
  - lib/yell/helpers/level.rb
@@ -85,17 +85,17 @@ require_paths:
85
85
  - lib
86
86
  required_ruby_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ! '>='
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - '>='
93
+ - - ! '>='
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  requirements: []
97
97
  rubyforge_project: yell
98
- rubygems_version: 2.0.0
98
+ rubygems_version: 2.1.5
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Yell - Your Extensible Logging Library
@@ -118,3 +118,4 @@ test_files:
118
118
  - spec/yell/repository_spec.rb
119
119
  - spec/yell/silencer_spec.rb
120
120
  - spec/yell_spec.rb
121
+ has_rdoc: