koa 0.0.1 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc5945903a71ce2ab19ff84349e51f71b424168f
4
- data.tar.gz: 0eb595a00c2ba2ea352c9d9e58efa822aa9b7005
3
+ metadata.gz: 478a408cb43b0149e505d7f09f5569195346cff3
4
+ data.tar.gz: 5db49dfe9a1eb30be09afa5cf847de300ad5033d
5
5
  SHA512:
6
- metadata.gz: dd417b6f9690c978be64f172c73125cc81c682b557bcfa484285707f3426fe025d5c0e3276e90e0a047e3b03a542fbc5468d30d471b6b59f14480ffcdb7d2191
7
- data.tar.gz: 1273a8f1a20bc5748ef0caf33e4510272fcaecc81afc2b3fafaedebbace0657c70d11b7ad096757da84bc6f0b85222403a0c475e056bcf12c983d569346efe8f
6
+ metadata.gz: d89d6d9d73663b8ff5a5bd3af82db76b9d40d52fd811b4030df8598e306389ef34b884dc70f89764ee57f92bcfe8c24b8543b41252d362be765f542af7b28a60
7
+ data.tar.gz: 9ed081fa9a7e812fdaacb65f0b8e0b328a08579e006eaccc45addef791e336b16badc73e69642d1668ff39332c45eab56b61776f93a1c03814434eee7172f8f9
data/lib/koa/logger.rb CHANGED
@@ -4,26 +4,26 @@ module Koa
4
4
  def initialize
5
5
  @msgs = []
6
6
  end
7
-
7
+
8
8
  def puts(msg)
9
9
  @msgs << msg
10
10
  end
11
-
11
+
12
12
  def flush
13
13
  @msgs.length.times.map {@msgs.pop}
14
14
  end
15
15
  end
16
-
16
+
17
17
  module NullLogger
18
18
  def self.puts(*args)
19
-
19
+
20
20
  end
21
-
21
+
22
22
  def self.flush(*args)
23
-
23
+
24
24
  end
25
25
  end
26
-
26
+
27
27
  module Logger
28
28
  def self.appname
29
29
  @prefix ||= ENV['APP_NAME'].downcase if ENV['APP_NAME']
@@ -32,54 +32,54 @@ module Koa
32
32
  end
33
33
  @prefix ||= ""
34
34
  end
35
-
35
+
36
36
  def self.prefix(name)
37
37
  appname+name
38
38
  end
39
-
39
+
40
40
  def self.librato_log(type, name, val, data)
41
41
  name = prefix(name)
42
42
  data["#{type}##{name}"] = val
43
43
  log(data)
44
44
  end
45
-
45
+
46
46
  def self.out=(o)
47
47
  @out = o
48
48
  end
49
-
49
+
50
50
  def self.out
51
51
  @out || $stdout
52
52
  end
53
-
53
+
54
54
  def self.log(data)
55
55
  out.puts(stringify(data))
56
56
  end
57
-
57
+
58
58
  def self.measure_block(name, data = {})
59
59
  start = Time.now
60
60
  result = yield
61
61
  elapsed = (Time.now.to_f - start.to_f) * 1000
62
- measure(name, elapsed.round.to_s+"ms")
62
+ measure(name, elapsed.round.to_s+"ms", data)
63
63
  result
64
64
  end
65
-
65
+
66
66
  def self.count(name, val, data = {})
67
67
  librato_log("count", name, val, data)
68
68
  end
69
-
69
+
70
70
  def self.measure(name, val, data = {})
71
71
  librato_log("measure", name, val, data)
72
72
  end
73
-
73
+
74
74
  def self.sample(name, val, data = {})
75
75
  librato_log("sample", name, val, data)
76
76
  end
77
-
77
+
78
78
  def self.stringify(data)
79
79
  data.reduce(out=String.new) do |s, tup|
80
80
  s << [tup.first, tup.last].join("=") << " "
81
81
  end
82
82
  end
83
83
  end
84
-
84
+
85
85
  end
@@ -5,6 +5,14 @@ module Koa
5
5
  end
6
6
 
7
7
  module ClassMethods
8
+ def measurement_name(method)
9
+ self.name.gsub(/::/, '/').
10
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
11
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
12
+ tr("-", "_").
13
+ downcase + "." + method.to_s.gsub(/_/,"-")
14
+ end
15
+
8
16
  def measure_methods(*args)
9
17
  @methods_to_measure ||= []
10
18
  @methods_to_measure += args
@@ -18,7 +26,7 @@ module Koa
18
26
  unmeasured_name = "unmeasured_#{name}"
19
27
  alias_method unmeasured_name, name
20
28
  define_method name do |*args, &block|
21
- Koa::Logger.measure_block(name.to_s.gsub(/_/,"-")) do
29
+ Koa::Logger.measure_block(self.class.measurement_name(name)) do
22
30
  send unmeasured_name, *args, &block
23
31
  end
24
32
  end
@@ -33,7 +41,7 @@ module Koa
33
41
  unmeasured_name = "unmeasured_#{name}"
34
42
  self.singleton_class.send(:alias_method, unmeasured_name, name)
35
43
  define_singleton_method name do |*args, &block|
36
- Koa::Logger.measure_block(name.to_s.gsub(/_/,"-")) do
44
+ Koa::Logger.measure_block(measurement_name(name)) do
37
45
  send unmeasured_name, *args, &block
38
46
  end
39
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: koa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Rykwalder