gauss 0.0.3 → 0.0.4

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/Rakefile CHANGED
@@ -1 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs.push "test"
6
+ t.test_files = FileList["test/*_test.rb"]
7
+ t.verbose = true
8
+ end
9
+
10
+ task default: :test
@@ -1,6 +1,7 @@
1
1
  require "gauss/version"
2
2
  require "statsd"
3
3
  require 'benchmark'
4
+ require 'pry'
4
5
 
5
6
  module Gauss
6
7
  class << self
@@ -39,6 +40,7 @@ module Gauss
39
40
  p "#{name}: #{m}"
40
41
  r
41
42
  else
43
+
42
44
  Gauss::metrics.time(name) { yield }
43
45
  end
44
46
  end
@@ -1,3 +1,3 @@
1
1
  module Gauss
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,147 @@
1
+ require 'test_helper'
2
+
3
+ describe Gauss do
4
+ before do
5
+ reset_gauss
6
+
7
+ class T
8
+ include Gauss
9
+ include Tester
10
+ end
11
+
12
+ Gauss::mode = :local
13
+ end
14
+
15
+ after do
16
+ Object.send(:remove_const, :T) rescue nil
17
+ end
18
+
19
+ it 'asserts true' do
20
+ true.must_equal true
21
+ end
22
+
23
+ it 'uses rails app name as prefix' do
24
+ class Gauss::Rails
25
+ def self.application
26
+ App.new
27
+ end
28
+
29
+ class App
30
+ def self.parent_name
31
+ return "test_app"
32
+ end
33
+ end
34
+ end
35
+
36
+ class T
37
+ include Gauss
38
+ end
39
+
40
+ T.new.prefix.must_equal "test_app"
41
+
42
+ # cleanup
43
+ Gauss.send(:remove_const, :Rails)
44
+ end
45
+
46
+ it 'lets you override the prefix' do
47
+ Gauss::benchmark_prefix = "test_prefix"
48
+ Gauss::prefix.must_equal "test_prefix"
49
+ end
50
+
51
+ it 'executes code in the given block' do
52
+ class TestException < StandardError; end
53
+
54
+ class T
55
+ def test
56
+ benchmark {
57
+ raise TestException
58
+ }
59
+ end
60
+ end
61
+
62
+ assert_raises(TestException) {
63
+ T.new.test
64
+ }
65
+ end
66
+
67
+ it 'outputs timing in local mode' do
68
+ class T
69
+ def test
70
+ benchmark {
71
+ 1+1
72
+ }
73
+ end
74
+ end
75
+
76
+ out, _ = capture_io { T.new.test }
77
+ assert_match /t\.test/, out
78
+ end
79
+
80
+ it 'uses optional suffix for the name' do
81
+ class T
82
+ def test
83
+ benchmark("test_suffix") {
84
+ 1+1
85
+ }
86
+ end
87
+ end
88
+
89
+ out, _ = capture_io { T.new.test }
90
+ assert_match /t\.test.*test_suffix/, out
91
+ end
92
+
93
+ it 'doesnt output anything if not in localmode' do
94
+ Gauss::mode = :non_local
95
+ class T
96
+ def test
97
+ benchmark("test_suffix") {
98
+ 1+1
99
+ }
100
+ end
101
+ end
102
+
103
+ out, _ = capture_io { T.new.test }
104
+ out.must_equal ""
105
+ end
106
+
107
+ it 'calls metrics.time when not in localmode' do
108
+ class O
109
+ def time(_, &__)
110
+ "test_worked"
111
+ end
112
+ end
113
+
114
+ Gauss::mode = :non_local
115
+ Gauss::metrics = O.new
116
+ class T
117
+ def test
118
+ benchmark {
119
+ 1+1
120
+ }
121
+ end
122
+ end
123
+
124
+ T.new.test.must_equal "test_worked"
125
+ Object.send(:remove_const, :O) rescue nil
126
+ end
127
+
128
+ it 'uses statsd with envvars by default' do
129
+ old_server = ENV["STATSD_SERVER"]
130
+ old_port = ENV["STATSD_SERVER_PORT"]
131
+ ENV["STATSD_SERVER"] = "test_server"
132
+ ENV["STATSD_SERVER_PORT"] = "test_port"
133
+
134
+ reset_gauss
135
+ class T
136
+ include Gauss
137
+ end
138
+
139
+ begin
140
+ Gauss::metrics.host.must_equal "test_server"
141
+ Gauss::metrics.port.must_equal "test_port"
142
+ ensure
143
+ ENV["STATSD_SERVER"] = old_server
144
+ ENV["STATSD_SERVER_PORT"] = old_port
145
+ end
146
+ end
147
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ describe Gauss::Strings do
4
+ it "underscores" do
5
+ Gauss::Strings::underscore("ThisThing").must_equal "this_thing"
6
+ Gauss::Strings::underscore("ThisOtherThing").must_equal "this_other_thing"
7
+ Gauss::Strings::underscore("T1Thing").must_equal "t1_thing"
8
+ Gauss::Strings::underscore("TTThing").must_equal "tt_thing"
9
+ Gauss::Strings::underscore("TTiThing").must_equal "t_ti_thing"
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+ require 'gauss'
4
+ require 'ostruct'
5
+
6
+ module Tester
7
+ def method_missing(meth, *args)
8
+ Gauss.send(meth)
9
+ end
10
+ end
11
+
12
+ def reset_gauss
13
+ Gauss::prefix = nil
14
+ Gauss::metrics = nil
15
+ Gauss::mode = nil
16
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gauss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Alejandro Ciniglio
@@ -9,11 +10,12 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-07-18 00:00:00.000000000 Z
13
+ date: 2013-07-24 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: bundler
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ~>
19
21
  - !ruby/object:Gem::Version
@@ -21,6 +23,7 @@ dependencies:
21
23
  type: :development
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ~>
26
29
  - !ruby/object:Gem::Version
@@ -28,43 +31,49 @@ dependencies:
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: rake
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
- - - '>='
36
+ - - ! '>='
33
37
  - !ruby/object:Gem::Version
34
38
  version: '0'
35
39
  type: :development
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
- - - '>='
44
+ - - ! '>='
40
45
  - !ruby/object:Gem::Version
41
46
  version: '0'
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: pry
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
- - - '>='
52
+ - - ! '>='
47
53
  - !ruby/object:Gem::Version
48
54
  version: '0'
49
55
  type: :development
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
- - - '>='
60
+ - - ! '>='
54
61
  - !ruby/object:Gem::Version
55
62
  version: '0'
56
63
  - !ruby/object:Gem::Dependency
57
64
  name: statsd-ruby
58
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
59
67
  requirements:
60
- - - '>='
68
+ - - ! '>='
61
69
  - !ruby/object:Gem::Version
62
70
  version: '0'
63
71
  type: :runtime
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
- - - '>='
76
+ - - ! '>='
68
77
  - !ruby/object:Gem::Version
69
78
  version: '0'
70
79
  description: Easy statsd metrics at the method level
@@ -82,28 +91,41 @@ files:
82
91
  - gauss.gemspec
83
92
  - lib/gauss.rb
84
93
  - lib/gauss/version.rb
94
+ - test/gauss_test.rb
95
+ - test/string_test.rb
96
+ - test/test_helper.rb
85
97
  homepage: http://github.com/adaptly/gauss
86
98
  licenses:
87
99
  - MIT
88
- metadata: {}
89
100
  post_install_message:
90
101
  rdoc_options: []
91
102
  require_paths:
92
103
  - lib
93
104
  required_ruby_version: !ruby/object:Gem::Requirement
105
+ none: false
94
106
  requirements:
95
- - - '>='
107
+ - - ! '>='
96
108
  - !ruby/object:Gem::Version
97
109
  version: '0'
110
+ segments:
111
+ - 0
112
+ hash: -2838724056170217821
98
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
+ none: false
99
115
  requirements:
100
- - - '>='
116
+ - - ! '>='
101
117
  - !ruby/object:Gem::Version
102
118
  version: '0'
119
+ segments:
120
+ - 0
121
+ hash: -2838724056170217821
103
122
  requirements: []
104
123
  rubyforge_project:
105
- rubygems_version: 2.0.0.rc.2
124
+ rubygems_version: 1.8.23
106
125
  signing_key:
107
- specification_version: 4
126
+ specification_version: 3
108
127
  summary: Uses smart defaults for statsd timers
109
- test_files: []
128
+ test_files:
129
+ - test/gauss_test.rb
130
+ - test/string_test.rb
131
+ - test/test_helper.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 4a5a934628f0eaab6d8a015ef4482c76e13de451
4
- data.tar.gz: a045b03de88b8d5d4c47541d9238b5056bf15be2
5
- SHA512:
6
- metadata.gz: 1e8ef2f96cb3bc2296eae76d790e60d2cdc8a7844c9a954f6501f4b50e16420293faae7845d4179cffb53b53bb5e4559c73b83cead6f5236d62d092568dc0aa7
7
- data.tar.gz: 552e23c79f700c22ea8d1df1e8bf642d33c20804fa85f47b737647664ff45a90fbaa136f86546876ebd673b91e39696e69b880267b3a5417be0f06b012a5235c