fozzie 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,13 +13,7 @@ module Fozzie
13
13
 
14
14
  def time_to_do(stat, sample_rate=1, &block); time_for(stat, sample_rate, &block); end
15
15
  def time_for(stat, sample_rate=1, &block)
16
- res = nil
17
- begin
18
- res = time(stat, sample_rate, &block)
19
- rescue SocketError => exc
20
- puts exc.message
21
- res
22
- end
16
+ time(stat, sample_rate, &block)
23
17
  end
24
18
 
25
19
  def committed; commit; end
@@ -42,6 +36,14 @@ module Fozzie
42
36
  def event(type)
43
37
  timing "event.#{type.to_s}", Time.now.usec
44
38
  end
39
+
40
+ def send_to_socket(message)
41
+ begin
42
+ super(message)
43
+ rescue SocketError => exc
44
+ nil
45
+ end
46
+ end
45
47
 
46
48
  end
47
49
 
@@ -1,3 +1,3 @@
1
1
  module Fozzie
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -5,18 +5,18 @@ describe Fozzie do
5
5
 
6
6
  it { should respond_to(:c) }
7
7
  it { should respond_to(:config) }
8
-
8
+
9
9
  it "has configuration" do
10
10
  Fozzie.config.should be_kind_of(Fozzie::Configuration)
11
11
  Fozzie.c.should be_kind_of(Fozzie::Configuration)
12
12
  end
13
-
13
+
14
14
  it "creates new classes for statistics gathering" do
15
15
  Fozzie::Classes::NAMESPACES.each do |k|
16
16
  Kernel.const_defined?(k).should == true
17
17
  end
18
18
  end
19
-
19
+
20
20
  it "acts like its inherited parent" do
21
21
  Fozzie::Classes::NAMESPACES.each do |k|
22
22
  kl = Kernel.const_get(k)
@@ -27,36 +27,36 @@ describe Fozzie do
27
27
  kl.should respond_to(:time)
28
28
  end
29
29
  end
30
-
30
+
31
31
  it "acts an a singleton" do
32
32
  Fozzie::Classes::NAMESPACES.each do |k|
33
33
  kl1, kl2 = Kernel.const_get(k), Kernel.const_get(k)
34
34
  kl1.should == kl2
35
35
  end
36
36
  end
37
-
37
+
38
38
  it "assigns namespace when passed" do
39
39
  Fozzie::AbstractFozzie.new(1,2, 'a').namespace.should == 'a'
40
40
  end
41
-
41
+
42
42
  it "times a given block" do
43
43
  Stats.expects(:timing).with() {|b, val, timing| b == 'data.bin' && (1000..1200).include?(val) }.twice
44
44
  Stats.time_for('data.bin') { sleep 1 }
45
45
  Stats.time_to_do('data.bin') { sleep 1 }
46
46
  end
47
-
47
+
48
48
  it "registers a commit" do
49
49
  Stats.expects(:timing).with('event.commit', anything).twice
50
50
  Stats.commit
51
51
  Stats.committed
52
52
  end
53
-
53
+
54
54
  it "registers a build" do
55
55
  Stats.expects(:timing).with('event.build', anything).twice
56
56
  Stats.build
57
57
  Stats.built
58
58
  end
59
-
59
+
60
60
  it "registers a deploy" do
61
61
  Stats.expects(:timing).with('event.deploy', anything).twice
62
62
  Stats.deploy
@@ -64,7 +64,7 @@ describe Fozzie do
64
64
  end
65
65
 
66
66
  it "ensures block is called on socket error" do
67
- Stats.stubs(:time).raises(SocketError)
67
+ UDPSocket.any_instance.stubs(:send).raises(SocketError)
68
68
  proc { Stats.time_for('data.bin') { sleep 1 } }.should_not raise_error
69
69
  proc { Stats.time_to_do('data.bin') { sleep 1 } }.should_not raise_error
70
70
  end
@@ -72,5 +72,13 @@ describe Fozzie do
72
72
  it "raises exception if natural exception from block" do
73
73
  proc { Stats.time_for('data.bin') { raise ArgumentError, "testing" } }.should raise_error(ArgumentError)
74
74
  end
75
+
76
+ it "only calls the block once on SocketError" do
77
+ UDPSocket.any_instance.stubs(:send).raises(SocketError)
78
+ i = 0
79
+ p = proc {|n| (n + 1) }
80
+ val = Stats.time_for('data.bin') { i+= p.call(i) }
81
+ val.should == 1
82
+ end
75
83
 
76
84
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fozzie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-05 00:00:00.000000000 Z
12
+ date: 2012-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: statsd-ruby
16
- requirement: &70137529207120 !ruby/object:Gem::Requirement
16
+ requirement: &70172749402340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70137529207120
24
+ version_requirements: *70172749402340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70137529206060 !ruby/object:Gem::Requirement
27
+ requirement: &70172749401920 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70137529206060
35
+ version_requirements: *70172749401920
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70137529205360 !ruby/object:Gem::Requirement
38
+ requirement: &70172749401240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70137529205360
46
+ version_requirements: *70172749401240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mocha
49
- requirement: &70137529204200 !ruby/object:Gem::Requirement
49
+ requirement: &70172749400660 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70137529204200
57
+ version_requirements: *70172749400660
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &70137529203640 !ruby/object:Gem::Requirement
60
+ requirement: &70172749400240 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70137529203640
68
+ version_requirements: *70172749400240
69
69
  description: Gem allows statistics gathering from Ruby and Ruby on Rails applications
70
70
  to Statsd
71
71
  email:
@@ -108,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  segments:
110
110
  - 0
111
- hash: 4093004716417963193
111
+ hash: -3461329709865678557
112
112
  required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  version: '0'
118
118
  segments:
119
119
  - 0
120
- hash: 4093004716417963193
120
+ hash: -3461329709865678557
121
121
  requirements: []
122
122
  rubyforge_project: fozzie
123
123
  rubygems_version: 1.8.10