fozzie 0.0.21 → 0.0.22

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.
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - jruby-19mode
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
- # Fozzie
1
+ # Fozzie [![travis-ci](https://secure.travis-ci.org/lonelyplanet/fozzie.png)](https://secure.travis-ci.org/lonelyplanet/fozzie)
2
2
 
3
- Ruby gem for registering statistics to Statsd in various ways.
3
+ Ruby gem for registering statistics to a [Statsd](https://github.com/etsy/statsd) server in various ways.
4
+
5
+ ## Requirements
6
+
7
+ * A Statsd server
8
+ * Ruby 1.9
4
9
 
5
10
  ## Basic Usage
6
11
 
@@ -8,8 +13,9 @@ Send through statistics depending on the type you want to provide:
8
13
 
9
14
  ### Increment counter
10
15
 
11
- Stats.increment 'wat'
12
-
16
+ Stats.increment 'wat' # increments the value in a Statsd bucket called 'some.prefix.wat' -
17
+ # the exact bucket name depends on the bucket name prefix (see below)
18
+
13
19
  ### Decrement counter
14
20
 
15
21
  Stats.decrement 'wat'
@@ -142,21 +148,26 @@ To time and register the controller actions within your Rails application, Fozzi
142
148
 
143
149
  ### Rails
144
150
 
145
- Based on the Rack middleware above, but is more involved in it's construction of the bucket value.
151
+ Based on the Rack middleware above, but is more involved in its construction of the bucket value.
146
152
 
147
153
  Fozzie::Rails::Middleware will automatically be invoked on Rails initialization.
148
154
 
149
155
  ## Bucket name prefixes
150
156
 
151
- Fozzie will construct bucket name prefixes according to your settings and environment. Example would be
157
+ Fozzie automatically constructs bucket name prefixes from app name,
158
+ hostname, and environment. For example:
152
159
 
153
- Stats.increment 'foo'
160
+ Stats.increment 'wat'
161
+
162
+ increments the bucket named
154
163
 
155
- Would be represented as the following Graphite bucket:
164
+ app-name.your-computer-name.development.wat
156
165
 
157
- wat.your-computer-name.development.foo
166
+ When working on your development machine. This allows multiple
167
+ application instances, in different environments, to be distinguished
168
+ easily and collated in Graphite quickly.
158
169
 
159
- When working on your development machine. This allows multiple application instances, in different environments, to be distinguished easily, and collated in Graphite quickly.
170
+ The app name can be configured via the YAML configuration.
160
171
 
161
172
  ## Low level behaviour
162
173
 
@@ -178,16 +189,18 @@ If you also require UI metrics, you can also include the Mill script in the bott
178
189
 
179
190
  ## Credits
180
191
 
181
- Currently supported and maintained by [Marc Watts](marc.watts@lonelyplanet.co.uk) @Lonely Planet Online.
192
+ Currently supported and maintained by [Marc Watts](marc.watts@lonelyplanet.co.uk) @ Lonely Planet Online.
182
193
 
183
- Big thanks to:
194
+ Big thanks and Credits:
184
195
 
185
196
  * [Mark Barger](mark.barger@lonelyplanet.co.uk) for support in trying to make this Gem useful.
186
197
 
187
- * [Etsy](http://codeascraft.etsy.com/) who's [Statsd](https://github.com/etsy/statsd) product has enabled us to come such a long way in a very short period of time. We love Etsy.
198
+ * [Dave Nolan](https://github.com/textgoeshere)
199
+
200
+ * [Etsy](http://codeascraft.etsy.com/) whose [Statsd](https://github.com/etsy/statsd) product has enabled us to come such a long way in a very short period of time. We love Etsy.
188
201
 
189
202
  * [reinh](https://github.com/reinh/statsd) for his [statsd](https://github.com/reinh/statsd) Gem.
190
203
 
191
204
  ## Comments and Feedback
192
205
 
193
- Please [contact](marc.watts@lonelyplanet.co.uk) me on anything... improvements will be needed and are welcomed greatly.
206
+ Please [contact](marc.watts@lonelyplanet.co.uk) me on anything... improvements will be needed and are welcomed greatly.
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
data/fozzie.gemspec CHANGED
@@ -35,8 +35,6 @@ Gem::Specification.new do |s|
35
35
 
36
36
  s.add_development_dependency 'guard'
37
37
  s.add_development_dependency 'guard-rspec'
38
- s.add_development_dependency 'guard-rocco'
39
- s.add_development_dependency 'fl-rocco'
40
38
 
41
39
  s.add_development_dependency 'ruby_gntp'
42
40
  end
data/lib/fozzie/sniff.rb CHANGED
@@ -31,8 +31,10 @@ module Fozzie
31
31
 
32
32
  def method_added(target)
33
33
  _monitor_meth(target) do |with, without, feature, bin|
34
- define_method(with) do |*args|
35
- S.time_for(bin) { args.empty? ? self.send(without) : self.send(without, *args) }
34
+ define_method(with) do |*args, &blk|
35
+ S.time_for(bin) do
36
+ args.empty? ? self.send(without, &blk) : self.send(without, *args, &blk)
37
+ end
36
38
  end
37
39
  self.alias_method_chain(target, feature)
38
40
  end
@@ -40,8 +42,10 @@ module Fozzie
40
42
 
41
43
  def singleton_method_added(target)
42
44
  _monitor_meth(target) do |with, without, feature, bin|
43
- define_singleton_method(with) do |*args|
44
- S.time_for(bin) { args.empty? ? send(without) : send(without, *args) }
45
+ define_singleton_method(with) do |*args, &blk|
46
+ S.time_for(bin) do
47
+ args.empty? ? send(without, &blk) : send(without, *args, &blk)
48
+ end
45
49
  end
46
50
  self.singleton_class.class_eval { alias_method_chain target, feature }
47
51
  end
@@ -50,4 +54,4 @@ module Fozzie
50
54
  end
51
55
 
52
56
  end
53
- end
57
+ end
@@ -1,3 +1,3 @@
1
1
  module Fozzie
2
- VERSION = "0.0.21"
2
+ VERSION = "0.0.22"
3
3
  end
@@ -21,24 +21,24 @@ describe Fozzie::Configuration do
21
21
  end
22
22
 
23
23
  it "defaults env" do
24
- subject.env.should eq 'development'
24
+ subject.env.should eq 'test'
25
25
  end
26
26
 
27
27
  it "creates a data prefix" do
28
28
  subject.stubs(:origin_name).returns("")
29
- subject.data_prefix.should eq 'development'
29
+ subject.data_prefix.should eq 'test'
30
30
  end
31
31
 
32
32
  it "creates a data prefix with appname when set" do
33
33
  subject.stubs(:origin_name).returns("")
34
34
  subject.appname = 'astoria'
35
- subject.data_prefix.should eq 'astoria.development'
35
+ subject.data_prefix.should eq 'astoria.test'
36
36
  end
37
37
 
38
38
  it "creates a prefix with origin" do
39
39
  subject.stubs(:origin_name).returns("app.server.local")
40
40
  subject.appname = 'astoria'
41
- subject.data_prefix.should eq 'astoria.app-server-local.development'
41
+ subject.data_prefix.should eq 'astoria.app-server-local.test'
42
42
  end
43
43
 
44
44
  it "handles missing configuration namespace" do
@@ -2,8 +2,7 @@ require 'spec_helper'
2
2
  require 'fozzie/sniff'
3
3
 
4
4
  describe Fozzie::Sniff do
5
-
6
- subject do
5
+ let(:klass) do
7
6
  class FooBar
8
7
 
9
8
  _monitor
@@ -22,13 +21,24 @@ describe Fozzie::Sniff do
22
21
 
23
22
  def honeybadger; :dontcare end
24
23
 
25
- end
24
+ _monitor
25
+ def method_yielding_to_block
26
+ yield(:retval_from_block) if block_given?
27
+ end
26
28
 
27
- FooBar
29
+ _monitor
30
+ def self.class_method_yielding_to_block
31
+ yield(:retval_from_block) if block_given?
32
+ end
33
+
34
+ self
35
+ end
28
36
  end
29
37
 
30
- context "environments" do
31
38
 
39
+ context "environments" do
40
+ subject { klass }
41
+
32
42
  it "is disabled in test" do
33
43
  Fozzie.c.stubs(:env).returns('test')
34
44
  S.expects(:time_for).with(['foo_bar', 'bar!']).never
@@ -46,10 +56,10 @@ describe Fozzie::Sniff do
46
56
  end
47
57
 
48
58
  context 'class methods' do
49
- let!(:env) { Fozzie.c.stubs(:env).returns('development') }
50
-
59
+ subject { klass }
60
+
51
61
  it "aliases methods for monitoring" do
52
- subject.methods.grep(/bar/).should eq [:bar!, :"bar_with_monitor!", :"bar_without_monitor!"]
62
+ subject.methods.grep(/bar/).should =~ [:bar!, :"bar_with_monitor!", :"bar_without_monitor!"]
53
63
  end
54
64
 
55
65
  it "behaves like original" do
@@ -73,35 +83,49 @@ describe Fozzie::Sniff do
73
83
  subject.badger.should eq :cares
74
84
  end
75
85
 
86
+
87
+ it "yields to a block when given" do
88
+ subject.class_method_yielding_to_block do |value_from_block|
89
+ value_from_block
90
+ end.should eq :retval_from_block
91
+ end
92
+
76
93
  end
77
94
 
78
95
  context 'instance methods' do
79
-
96
+ subject { FooBar.new }
97
+
80
98
  it "aliases methods for monitoring" do
81
- subject.new.methods.grep(/foo/).should eq [:foo, :foo_with_monitor, :foo_without_monitor]
99
+ subject.methods.grep(/foo/).should =~ [:foo, :foo_with_monitor, :foo_without_monitor]
82
100
  end
83
101
 
84
102
  it "behaves like original" do
85
- subject.new.foo.should eq :foo
103
+ subject.foo.should eq :foo
86
104
  end
87
105
 
88
106
  it "utilises Fozzie" do
89
107
  S.expects(:time_for).with(['foo_bar', 'foo'])
90
108
 
91
- subject.new.foo
109
+ subject.foo
92
110
  end
93
111
 
94
112
  it "handles arguments" do
95
113
  a = [:slow, :slower, :slowest]
96
- subject.new.sloth(*a).should eq a
114
+ subject.sloth(*a).should eq a
97
115
  end
98
116
 
99
117
  it "does not monitor when mapped" do
100
118
  S.expects(:time_for).with(['foo_bar', 'honeybadger']).never
101
119
 
102
- subject.new.honeybadger.should eq :dontcare
120
+ subject.honeybadger.should eq :dontcare
121
+ end
122
+
123
+ it "yields to a block when given" do
124
+ subject.method_yielding_to_block do |value_from_block|
125
+ value_from_block
126
+ end.should eq :retval_from_block
103
127
  end
104
128
 
105
129
  end
106
130
 
107
- end
131
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ ENV['RACK_ENV'] ||= 'test'
2
+
1
3
  root = File.expand_path('../', File.dirname(__FILE__))
2
4
  lib = File.expand_path('lib', root)
3
5
  $:.unshift(root, lib)
@@ -10,6 +12,7 @@ RSpec.configure do |config|
10
12
  end
11
13
 
12
14
  require 'fozzie'
15
+
13
16
  Fozzie.configure do |config|
14
17
  config.host = '127.0.0.1'
15
18
  config.port = 8809
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.21
4
+ version: 0.0.22
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-20 00:00:00.000000000 Z
13
+ date: 2012-05-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sys-uname
@@ -204,38 +204,6 @@ dependencies:
204
204
  - - ! '>='
205
205
  - !ruby/object:Gem::Version
206
206
  version: '0'
207
- - !ruby/object:Gem::Dependency
208
- name: guard-rocco
209
- requirement: !ruby/object:Gem::Requirement
210
- none: false
211
- requirements:
212
- - - ! '>='
213
- - !ruby/object:Gem::Version
214
- version: '0'
215
- type: :development
216
- prerelease: false
217
- version_requirements: !ruby/object:Gem::Requirement
218
- none: false
219
- requirements:
220
- - - ! '>='
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
- - !ruby/object:Gem::Dependency
224
- name: fl-rocco
225
- requirement: !ruby/object:Gem::Requirement
226
- none: false
227
- requirements:
228
- - - ! '>='
229
- - !ruby/object:Gem::Version
230
- version: '0'
231
- type: :development
232
- prerelease: false
233
- version_requirements: !ruby/object:Gem::Requirement
234
- none: false
235
- requirements:
236
- - - ! '>='
237
- - !ruby/object:Gem::Version
238
- version: '0'
239
207
  - !ruby/object:Gem::Dependency
240
208
  name: ruby_gntp
241
209
  requirement: !ruby/object:Gem::Requirement
@@ -263,6 +231,7 @@ extra_rdoc_files: []
263
231
  files:
264
232
  - .gitignore
265
233
  - .rvmrc
234
+ - .travis.yml
266
235
  - Gemfile
267
236
  - Guardfile
268
237
  - README.md
@@ -309,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
309
278
  version: '0'
310
279
  segments:
311
280
  - 0
312
- hash: 2575257041287680433
281
+ hash: 1130845935272544581
313
282
  required_rubygems_version: !ruby/object:Gem::Requirement
314
283
  none: false
315
284
  requirements:
@@ -318,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
318
287
  version: '0'
319
288
  segments:
320
289
  - 0
321
- hash: 2575257041287680433
290
+ hash: 1130845935272544581
322
291
  requirements: []
323
292
  rubyforge_project: fozzie
324
293
  rubygems_version: 1.8.24