fozzie 0.0.4 → 0.0.5

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.
@@ -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