3 Commits

5 changed files with 58 additions and 14 deletions

View File

@@ -32,7 +32,7 @@ module Airbrake
def increment def increment
return unless configured? return unless configured?
client.increment('exceptions') client.increment(config.bucket)
end end
end # << self end # << self

View File

@@ -14,6 +14,11 @@ module Airbrake
end end
attr_writer :port attr_writer :port
def bucket
@bucket ||= 'exceptions'
end
attr_writer :bucket
end # Configuration end # Configuration
end # Statsd end # Statsd
end # Airbrake end # Airbrake

View File

@@ -1,5 +1,5 @@
module Airbrake module Airbrake
module Statsd module Statsd
VERSION = '0.1.0' VERSION = '0.2.0'
end end
end end

View File

@@ -37,6 +37,17 @@ module Airbrake
end end
end end
describe '`bucket` option' do
it 'defaults to "exceptions"' do
subject.bucket.should == 'exceptions'
end
it 'can be set' do
subject.bucket = 'errors'
subject.bucket.should == 'errors'
end
end
end end
end end
end end

View File

@@ -6,11 +6,26 @@ module Airbrake
subject { Statsd } subject { Statsd }
before do before do
subject.instance_variable_set('@configured', nil) ['@configured', '@config', '@client'].each do |var_name|
subject.instance_variable_set('@config', nil) subject.instance_variable_set(var_name, nil)
subject.instance_variable_set('@client', nil) end
end end
describe '#configure' do
it 'sets @configured to true' do
subject.instance_variable_get('@configured').should_not be_true
subject.configure
subject.instance_variable_get('@configured').should be_true
end
context 'when block is passed' do
it 'passes #config to block' do
block = Proc.new { |conf| conf.should be_a(Statsd::Configuration) }
subject.configure(&block)
end
end # block passed
end # configure
describe '#configured?' do describe '#configured?' do
context 'when #configure has been called' do context 'when #configure has been called' do
it 'returns true' do it 'returns true' do
@@ -30,7 +45,7 @@ module Airbrake
it 'creates new Configuration instance if not set' do it 'creates new Configuration instance if not set' do
subject.config.should be_a(Statsd::Configuration) subject.config.should be_a(Statsd::Configuration)
end end
end end # config
describe '#client' do describe '#client' do
it 'creates a new ::Statsd client instance if not set' do it 'creates a new ::Statsd client instance if not set' do
@@ -49,23 +64,36 @@ module Airbrake
::Statsd.any_instance.should_receive(:namespace=).with('test').once ::Statsd.any_instance.should_receive(:namespace=).with('test').once
subject.client subject.client
end end
end end # namespace is set
end end # client
describe '#increment' do describe '#increment' do
context 'when #configure has been called' do context 'when #configure has been called' do
before { subject.configure } before { subject.configure }
it 'calls #increment on #client instance' do it 'calls #increment on #client' do
subject.client.should_receive(:increment).once
subject.increment
end
it 'default bucket name used is "exceptions"' do
subject.client.should_receive(:increment).with('exceptions').once subject.client.should_receive(:increment).with('exceptions').once
subject.increment subject.increment
end end
context 'when bucket option has been customized' do
before do
subject.configure { |config| config.bucket = 'errors' }
end
it 'calls #increment on #client with custom bucket' do
subject.client.should_receive(:increment).with('errors').once
subject.increment
end
end # bucket option customized
end # configure called end # configure called
context 'when #configure has not been called' do
it 'does not call #increment on #client' do
subject.client.should_not_receive(:increment)
subject.increment
end
end # configure not called
end # increment end # increment
end end