silencer 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,8 +1,14 @@
1
+ bundler_args: --without development
2
+ language: ruby
1
3
  rvm:
4
+ - jruby-18mode
5
+ - jruby-19mode
6
+ - rbx-18mode
7
+ - rbx-19mode
2
8
  - 1.8.7
3
9
  - 1.9.2
4
10
  - 1.9.3
5
- - jruby
6
- - rbx
7
- - ree
8
- - ruby-head
11
+ - 2.0.0
12
+ matrix:
13
+ allow_failures:
14
+ - rvm: 2.0.0
data/Gemfile CHANGED
@@ -1,4 +1,16 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in quietus.gemspec
3
+ gem 'rake'
4
+ gem 'yard'
5
+
6
+ group :development do
7
+ gem 'kramdown'
8
+ end
9
+
10
+ group :test do
11
+ gem 'rspec'
12
+ gem 'simplecov'
13
+ gem 'guard-rspec'
14
+ end
15
+
4
16
  gemspec
data/README.md CHANGED
@@ -23,7 +23,7 @@ In your production environment (presumably):
23
23
  Or if you'd prefer, you can pass it regular expressions:
24
24
 
25
25
 
26
- config.middleware.swap Rails::Rack::Logger, Silencer::Logger, :silence => [/assets/]
26
+ config.middleware.swap Rails::Rack::Logger, Silencer::Logger, :silence => [%r{^/assets/}]
27
27
 
28
28
  Silencer's logger will serve as a drop-in replacement for Rails' default logger. It will not suppress any logging by default, simply pass it an array of urls via the options hash. You can also send it a 'X-SILENCE-LOGGER' header (with any value) with your request and that will also produce the same behavior.
29
29
 
@@ -31,7 +31,7 @@ Silencer's logger will serve as a drop-in replacement for Rails' default logger.
31
31
 
32
32
  Rails 2.3.x introduced a tagged logging feature. If you are using tagged logging with Rails 2.3 you can also pass taggers via the middleware:
33
33
 
34
- config.middleware.swap Rails::Rack::Logger, Silencer::Logger, config.log_tags, :silence => [/assets/]
34
+ config.middleware.swap Rails::Rack::Logger, Silencer::Logger, config.log_tags, :silence => [%r{^/assets/}]
35
35
 
36
36
  ## Note on Patches/Pull Requests
37
37
 
@@ -5,8 +5,8 @@ module Silencer
5
5
  class Logger < Rails::Rack::Logger
6
6
  def initialize(app, *taggers)
7
7
  @app = app
8
- @taggers = taggers
9
- opts = @taggers.extract_options!
8
+ opts = taggers.extract_options!
9
+ @taggers = taggers.flatten
10
10
  @silence = Array.wrap(opts[:silence])
11
11
  end
12
12
 
@@ -1,3 +1,3 @@
1
1
  module Silencer
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/silencer.gemspec CHANGED
@@ -10,14 +10,6 @@ Gem::Specification.new do |gem|
10
10
  gem.description = 'Selectively quiet your Rails logger on a per-action basis'
11
11
  gem.summary = gem.description
12
12
 
13
- gem.add_development_dependency 'rake'
14
- gem.add_development_dependency 'rspec'
15
- gem.add_development_dependency 'yard'
16
- gem.add_development_dependency 'rdiscount'
17
- gem.add_development_dependency 'simplecov'
18
- gem.add_development_dependency 'guard'
19
- gem.add_development_dependency 'guard-rspec'
20
-
21
13
  gem.add_dependency 'railties', '>= 3'
22
14
 
23
15
  gem.files = `git ls-files`.split("\n")
@@ -11,33 +11,48 @@ describe Silencer::Logger do
11
11
  end
12
12
  end
13
13
 
14
- it 'allows log writing when not implemented' do
14
+ def should_silence_logger
15
+ Rails.logger.should_receive(:level=).with(::Logger::ERROR).once
16
+ end
17
+ def should_not_silence_logger
15
18
  Rails.logger.should_not_receive(:level=).with(::Logger::ERROR)
19
+ end
16
20
 
17
- Silencer::Logger.new(@app).call(Rack::MockRequest.env_for("/"))
21
+ it 'by default does not silence any requests or use any taggers' do
22
+ should_not_silence_logger
23
+ logger = Silencer::Logger.new(@app)
24
+ logger.instance_variable_get(:@taggers).should == []
25
+ logger.call(Rack::MockRequest.env_for("/"))
18
26
  end
19
27
 
28
+ let(:log_tags) { [:uuid, :queue] }
20
29
  it 'instantiates with an optional taggers array' do
21
- Rails.logger.should_not_receive(:level=).with(::Logger::ERROR).once
30
+ should_silence_logger
31
+ logger = Silencer::Logger.new(@app, log_tags, :silence => ['/'])
32
+ logger.instance_variable_get(:@taggers).should == log_tags
33
+ logger.call(Rack::MockRequest.env_for("/"))
34
+ end
22
35
 
23
- Silencer::Logger.new(@app, :uuid, :queue, :silence => ['/']).call(Rack::MockRequest.env_for("/"))
36
+ # Note: initially this test used a splat on log_tags but it fails on 1.8
37
+ it 'instantiates with an optional taggers array passed as args' do
38
+ should_silence_logger
39
+ logger = Silencer::Logger.new(@app, :uuid, :queue, :silence => ['/'])
40
+ logger.instance_variable_get(:@taggers).should == log_tags
41
+ logger.call(Rack::MockRequest.env_for("/"))
24
42
  end
25
43
 
26
44
  it 'quiets the log when configured with a silenced path' do
27
- Rails.logger.should_receive(:level=).with(::Logger::ERROR).once
28
-
45
+ should_silence_logger
29
46
  Silencer::Logger.new(@app, :silence => ['/']).call(Rack::MockRequest.env_for("/"))
30
47
  end
31
48
 
32
49
  it 'quiets the log when configured with a regex' do
33
- Rails.logger.should_receive(:level=).with(::Logger::ERROR).once
34
-
50
+ should_silence_logger
35
51
  Silencer::Logger.new(@app, :silence => [/assets/]).call(Rack::MockRequest.env_for("/assets/application.css"))
36
52
  end
37
53
 
38
54
  it 'quiets the log when passed a custom header "X-SILENCE-LOGGER"' do
39
- Rails.logger.should_receive(:level=).with(::Logger::ERROR).once
40
-
55
+ should_silence_logger
41
56
  Silencer::Logger.new(@app).call(Rack::MockRequest.env_for("/", 'X-SILENCE-LOGGER' => 'true'))
42
57
  end
43
58
 
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,13 @@
1
1
  unless ENV['CI']
2
2
  require 'simplecov'
3
3
  SimpleCov.start do
4
+ add_filter '.bundle'
4
5
  add_group 'Silencer', 'lib/silencer'
5
6
  add_group 'Specs', 'spec'
6
7
  end
7
8
  end
8
9
 
9
- $LOAD_PATH.unshift(File.dirname(__FILE__))
10
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
11
-
12
10
  require 'rack'
13
11
  require 'rails'
14
12
  require 'silencer'
15
- require 'rspec'
13
+ require 'rspec'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: silencer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,120 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-16 00:00:00.000000000 Z
12
+ date: 2013-01-30 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: rspec
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: yard
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: rdiscount
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: simplecov
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
95
- name: guard
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: guard-rspec
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
14
  - !ruby/object:Gem::Dependency
127
15
  name: railties
128
16
  requirement: !ruby/object:Gem::Requirement
@@ -174,12 +62,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
62
  - - ! '>='
175
63
  - !ruby/object:Gem::Version
176
64
  version: '0'
65
+ segments:
66
+ - 0
67
+ hash: -4507938339127293314
177
68
  required_rubygems_version: !ruby/object:Gem::Requirement
178
69
  none: false
179
70
  requirements:
180
71
  - - ! '>='
181
72
  - !ruby/object:Gem::Version
182
73
  version: '0'
74
+ segments:
75
+ - 0
76
+ hash: -4507938339127293314
183
77
  requirements: []
184
78
  rubyforge_project:
185
79
  rubygems_version: 1.8.23