time_bandits 0.7.4 → 0.8.0
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.
- checksums.yaml +4 -4
- data/lib/time_bandits.rb +5 -0
- data/lib/time_bandits/time_consumers/base_consumer.rb +2 -0
- data/lib/time_bandits/time_consumers/database.rb +4 -0
- data/lib/time_bandits/version.rb +1 -1
- data/test/unit/base_test.rb +17 -3
- data/test/unit/database_test.rb +47 -0
- data/time_bandits.gemspec +2 -1
- metadata +22 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 116ff4f8110fea48a1fce36cea8362c06d9df6f5
|
4
|
+
data.tar.gz: 700559c495052c511e3b7ec61162249181653fcc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e215bb352bd437f48d955a387514006feedabb8b636fe3fe9abc65265af289a90d80e5c8eabba0cc3249b53729df2b2d37c0a1d00165ae857f5222b56726920
|
7
|
+
data.tar.gz: b761564d4c867a55bec84221c674901cf223312de4788714e37a5cb999c044b001a2857f03b318740a335b109e6f8e74ea383715b7f92d78d701a31d334923bd
|
data/lib/time_bandits.rb
CHANGED
@@ -37,6 +37,11 @@ module TimeBandits
|
|
37
37
|
time_bandits.map{|b| b.consumed}.sum
|
38
38
|
end
|
39
39
|
|
40
|
+
def self.current_runtime(except = [])
|
41
|
+
except = Array(except)
|
42
|
+
time_bandits.map{|b| except.include?(b) ? 0 : b.current_runtime}.sum
|
43
|
+
end
|
44
|
+
|
40
45
|
def self.runtimes
|
41
46
|
time_bandits.map{|b| b.runtime}.reject{|t| t.blank?}
|
42
47
|
end
|
data/lib/time_bandits/version.rb
CHANGED
data/test/unit/base_test.rb
CHANGED
@@ -26,6 +26,7 @@ class NoTimeBanditsTest < Test::Unit::TestCase
|
|
26
26
|
def test_clean_state
|
27
27
|
assert_equal Hash.new, TimeBandits.metrics
|
28
28
|
assert_equal 0, TimeBandits.consumed
|
29
|
+
assert_equal 0, TimeBandits.current_runtime
|
29
30
|
assert_equal "", TimeBandits.runtime
|
30
31
|
end
|
31
32
|
end
|
@@ -33,9 +34,10 @@ end
|
|
33
34
|
class DummyConsumerTest < Test::Unit::TestCase
|
34
35
|
module DummyConsumer
|
35
36
|
extend self
|
36
|
-
def consumed;
|
37
|
+
def consumed; 1; end
|
38
|
+
def current_runtime; 1; end
|
37
39
|
def runtime; "Dummy: 0ms"; end
|
38
|
-
def metrics; {:dummy_time =>
|
40
|
+
def metrics; {:dummy_time => 1, :dummy_calls => 1}; end
|
39
41
|
def reset; end
|
40
42
|
end
|
41
43
|
|
@@ -57,7 +59,19 @@ class DummyConsumerTest < Test::Unit::TestCase
|
|
57
59
|
assert_nothing_raised { TimeBandits.reset }
|
58
60
|
end
|
59
61
|
|
62
|
+
test "consumed" do
|
63
|
+
assert_equal 1, TimeBandits.consumed
|
64
|
+
end
|
65
|
+
|
66
|
+
test "current_runtime" do
|
67
|
+
assert_equal 1, TimeBandits.current_runtime
|
68
|
+
end
|
69
|
+
|
70
|
+
test "current_runtime without DummyConsumer" do
|
71
|
+
assert_equal 0, TimeBandits.current_runtime(DummyConsumer)
|
72
|
+
end
|
73
|
+
|
60
74
|
test "getting metrics" do
|
61
|
-
assert_equal({:dummy_time =>
|
75
|
+
assert_equal({:dummy_time => 1, :dummy_calls => 1}, TimeBandits.metrics)
|
62
76
|
end
|
63
77
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'active_record'
|
3
|
+
require 'time_bandits/monkey_patches/active_record'
|
4
|
+
|
5
|
+
class DatabaseTest < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
TimeBandits.time_bandits = []
|
8
|
+
TimeBandits.add TimeBandits::TimeConsumers::Database
|
9
|
+
TimeBandits.reset
|
10
|
+
end
|
11
|
+
|
12
|
+
test "getting metrics" do
|
13
|
+
nothing_measured = {
|
14
|
+
:db_time => 0,
|
15
|
+
:db_calls => 0,
|
16
|
+
:db_sql_query_cache_hits => 0
|
17
|
+
}
|
18
|
+
assert_equal nothing_measured, TimeBandits.metrics
|
19
|
+
end
|
20
|
+
|
21
|
+
test "formatting" do
|
22
|
+
log_subscriber.runtime += 1.234
|
23
|
+
log_subscriber.call_count += 3
|
24
|
+
log_subscriber.query_cache_hits += 1
|
25
|
+
TimeBandits.consumed
|
26
|
+
assert_equal "ActiveRecord: 1.234ms(3q,1h)", TimeBandits.runtime
|
27
|
+
end
|
28
|
+
|
29
|
+
test "accessing current runtime" do
|
30
|
+
log_subscriber.runtime += 1.234
|
31
|
+
assert_equal 1.234, TimeBandits.consumed
|
32
|
+
assert_equal 0, log_subscriber.runtime
|
33
|
+
log_subscriber.runtime += 4.0
|
34
|
+
assert_equal 5.234, bandit.current_runtime
|
35
|
+
assert_equal "ActiveRecord: 1.234ms(0q,0h)", TimeBandits.runtime
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def bandit
|
41
|
+
TimeBandits::TimeConsumers::Database.instance
|
42
|
+
end
|
43
|
+
|
44
|
+
def log_subscriber
|
45
|
+
ActiveRecord::LogSubscriber
|
46
|
+
end
|
47
|
+
end
|
data/time_bandits.gemspec
CHANGED
@@ -25,12 +25,13 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_development_dependency("appraisal")
|
26
26
|
s.add_development_dependency("byebug")
|
27
27
|
s.add_development_dependency("dalli")
|
28
|
-
s.add_development_dependency("memcached")
|
28
|
+
s.add_development_dependency("memcached", "~> 1.8.0")
|
29
29
|
s.add_development_dependency("minitest", "~> 5.5")
|
30
30
|
s.add_development_dependency("mocha")
|
31
31
|
s.add_development_dependency("mysql2")
|
32
32
|
s.add_development_dependency("rake")
|
33
33
|
s.add_development_dependency("redis")
|
34
34
|
s.add_development_dependency("sequel")
|
35
|
+
s.add_development_dependency("activerecord")
|
35
36
|
end
|
36
37
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: time_bandits
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kaes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thread_variables
|
@@ -98,16 +98,16 @@ dependencies:
|
|
98
98
|
name: memcached
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 1.8.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 1.8.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: minitest
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: activerecord
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
195
209
|
description: Rails Completed Line on Steroids
|
196
210
|
email:
|
197
211
|
- skaes@railsexpress.de
|
@@ -233,6 +247,7 @@ files:
|
|
233
247
|
- test/unit/active_support_notifications_test.rb
|
234
248
|
- test/unit/base_test.rb
|
235
249
|
- test/unit/dalli_test.rb
|
250
|
+
- test/unit/database_test.rb
|
236
251
|
- test/unit/duplicate_bandits.rb
|
237
252
|
- test/unit/gc_consumer_test.rb
|
238
253
|
- test/unit/memcached_test.rb
|
@@ -268,6 +283,7 @@ test_files:
|
|
268
283
|
- test/unit/active_support_notifications_test.rb
|
269
284
|
- test/unit/base_test.rb
|
270
285
|
- test/unit/dalli_test.rb
|
286
|
+
- test/unit/database_test.rb
|
271
287
|
- test/unit/duplicate_bandits.rb
|
272
288
|
- test/unit/gc_consumer_test.rb
|
273
289
|
- test/unit/memcached_test.rb
|