hallmonitor 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aa7771b4a13639ff7de87b023e02772dedc74f8f
4
- data.tar.gz: f695b69bda1f8528ee71a50244ddd54770a605c7
3
+ metadata.gz: 42d53cff1626075b9bc669c136a0bf7983f5880a
4
+ data.tar.gz: bd47a1799c522220ea030ecadaa2af429cea63ca
5
5
  SHA512:
6
- metadata.gz: 225ea818ac8fd73e71b61e5b6cb69364db2857259feef11dc241a9010c6144f1778b2e57a78bcf94851a3d64ad6d720d7b14363b38f351bb704333c988106414
7
- data.tar.gz: 647f56b728f3cadec74281bb41d6aee0e4cfa9a458e4e907be22d9bbca3248f9eadf28b48177c0a6e049b14da4ff90d8962316f45283d5051caa8a5fa8bbdfcc
6
+ metadata.gz: 6a3b4472a87957f81d4fde0c5690a29d1e833b3565c1fd491d5fd121ac93e97d8276ca13b4a37dd634fd70d16cadf1a6e119bba9174bbd0e996591fc3231c6d5
7
+ data.tar.gz: b80bd2b03fe7879ad46230194c08885d78d972e0d065ca2abc310aed0d8fecfbba34fb10654c8d7362de304afc61ca639fdf0835f035cc712dd3f546732d9425
@@ -3,35 +3,35 @@
3
3
  module Hallmonitor
4
4
  module Monitored
5
5
  module ClassMethods
6
- def timer_for(method_sym, options={})
7
- metric_name = options[:metric_name] || "#{self.underscore(self.name)}.#{method_sym.to_s}.time"
8
- self.send(:define_method, "#{method_sym.to_s}_with_hallmonitor_timer") do |*args|
9
- watch(metric_name) do
10
- self.send("#{method_sym.to_s}_without_hallmonitor_timer".to_sym, *args)
6
+ def timer_for(method_sym, options = {})
7
+ metric_name = options[:metric_name] || "#{underscore(name)}.#{method_sym}"
8
+ send(:define_method, "#{method_sym}_with_hallmonitor_timer") do |*args|
9
+ watch(metric_name) do
10
+ send("#{method_sym}_without_hallmonitor_timer".to_sym, *args)
11
11
  end
12
12
  end
13
13
 
14
- alias_method "#{method_sym.to_s}_without_hallmonitor_timer".to_sym, method_sym
15
- alias_method method_sym, "#{method_sym.to_s}_with_hallmonitor_timer".to_sym
14
+ alias_method "#{method_sym}_without_hallmonitor_timer".to_sym, method_sym
15
+ alias_method method_sym, "#{method_sym}_with_hallmonitor_timer".to_sym
16
16
  end
17
17
 
18
- def count_for(method_sym, options={})
19
- metric_name = options[:metric_name] || "#{self.underscore(self.name)}.#{method_sym.to_s}.count"
20
- self.send(:define_method, "#{method_sym.to_s}_with_hallmonitor_counter") do |*args|
18
+ def count_for(method_sym, options = {})
19
+ metric_name = options[:metric_name] || "#{underscore(name)}.#{method_sym}"
20
+ send(:define_method, "#{method_sym}_with_hallmonitor_counter") do |*args|
21
21
  emit(metric_name)
22
- self.send("#{method_sym.to_s}_without_hallmonitor_counter".to_sym, *args)
22
+ send("#{method_sym}_without_hallmonitor_counter".to_sym, *args)
23
23
  end
24
24
 
25
- alias_method "#{method_sym.to_s}_without_hallmonitor_counter".to_sym, method_sym
26
- alias_method method_sym, "#{method_sym.to_s}_with_hallmonitor_counter".to_sym
25
+ alias_method "#{method_sym}_without_hallmonitor_counter".to_sym, method_sym
26
+ alias_method method_sym, "#{method_sym}_with_hallmonitor_counter".to_sym
27
27
  end
28
28
 
29
29
  def underscore(value)
30
30
  word = value.dup
31
- word.gsub!(/::/, '/')
32
- word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
33
- word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
34
- word.tr!("-", "_")
31
+ word.gsub!(/::/, '.')
32
+ word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
33
+ word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
34
+ word.tr!('-', ' ')
35
35
  word.downcase!
36
36
  word
37
37
  end
@@ -48,14 +48,12 @@ module Hallmonitor
48
48
  # Otherwise, a new Hallmonitor::Event will be created with the parameter and emitted.
49
49
  def emit(event = nil)
50
50
  to_emit = self;
51
- if(!event.nil?)
51
+ unless event.nil?
52
52
  to_emit = event.kind_of?(Hallmonitor::Event) ? event : Hallmonitor::Event.new(event)
53
53
  end
54
54
 
55
55
  # If we were given a block, then we want to execute that
56
- if block_given?
57
- yield(to_emit)
58
- end
56
+ yield(to_emit) if block_given?
59
57
 
60
58
  Outputter.output(to_emit)
61
59
  end
@@ -1,7 +1,7 @@
1
1
  module Hallmonitor
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 2
4
+ MINOR = 3
5
5
  PATCH = 0
6
6
  BUILD = nil
7
7
 
@@ -2,22 +2,52 @@ require 'spec_helper'
2
2
 
3
3
  class Thing
4
4
  include Hallmonitor::Monitored
5
+
6
+ def timer_for_test
7
+ # Nothing
8
+ end
9
+ timer_for :timer_for_test
10
+
11
+ def count_for_test
12
+ # Nothing
13
+ end
14
+ count_for :count_for_test
5
15
  end
6
16
 
7
17
  RSpec::Matchers.define :an_event_with_name do |expected_name|
8
- match{ |actual| actual.name == expected_name}
18
+ match { |actual| actual.is_a?(Hallmonitor::Event) && actual.name == expected_name }
19
+ end
20
+
21
+ RSpec::Matchers.define :a_timed_event_with_name do |expected_name|
22
+ match { |actual| actual.is_a?(Hallmonitor::TimedEvent) && actual.name == expected_name }
9
23
  end
10
24
 
11
25
  describe Hallmonitor::Monitored do
12
- subject {Thing.new}
26
+ subject { Thing.new }
27
+
28
+ describe '#timer_for' do
29
+ it 'should emit a timer with an appropriate name' do
30
+ expect(Hallmonitor::Outputter).to(
31
+ receive(:output).with(a_timed_event_with_name('thing.timer_for_test')))
32
+ Thing.new.timer_for_test
33
+ end
34
+ end
35
+
36
+ describe '#count_for' do
37
+ it 'should emit an event with an appropriate name' do
38
+ expect(Hallmonitor::Outputter).to(
39
+ receive(:output).with(an_event_with_name('thing.count_for_test')))
40
+ Thing.new.count_for_test
41
+ end
42
+ end
13
43
 
14
- describe "#watch" do
15
- let(:retval) {"Hello World"}
16
- let(:name) {"foo"}
44
+ describe '#watch' do
45
+ let(:retval) { 'Hello World' }
46
+ let(:name) { 'foo' }
17
47
  before do
18
- expect(Hallmonitor::Outputter).to receive(:output).with(an_event_with_name(name))
48
+ expect(Hallmonitor::Outputter).to receive(:output).with(a_timed_event_with_name(name))
19
49
  end
20
- it "should return the value the block returns" do
50
+ it 'should return the value the block returns' do
21
51
  value = subject.watch(name) do
22
52
  retval
23
53
  end
@@ -25,8 +55,8 @@ describe Hallmonitor::Monitored do
25
55
  end
26
56
  end
27
57
 
28
- describe "#emit" do
29
- describe "with a string parameter" do
58
+ describe '#emit' do
59
+ describe 'with a string parameter' do
30
60
  let(:name) {"foo"}
31
61
  before do
32
62
  expect(Hallmonitor::Outputter).to receive(:output).with(an_event_with_name(name))
@@ -37,27 +67,27 @@ describe Hallmonitor::Monitored do
37
67
  end
38
68
  end
39
69
 
40
- describe "with a block" do
41
- it "should yield to the block" do
70
+ describe 'with a block' do
71
+ it 'should yield to the block' do
42
72
  yielded = false
43
73
  var = nil
44
- subject.emit("foo") do |thing|
74
+ subject.emit('foo') do |thing|
45
75
  var = thing
46
76
  yielded = true
47
77
  end
48
78
  expect(var).to_not be_nil
49
- expect(var.name).to eq("foo")
79
+ expect(var.name).to eq('foo')
50
80
  expect(yielded).to be_truthy
51
81
  end
52
82
  end
53
83
 
54
84
  describe 'with an event parameter' do
55
- let(:event) {Hallmonitor::Event.new("bar")}
85
+ let(:event) { Hallmonitor::Event.new('bar') }
56
86
  before do
57
87
  expect(Hallmonitor::Outputter).to receive(:output).with(event)
58
88
  end
59
89
 
60
- it "should emit the passed in event" do
90
+ it 'should emit the passed in event' do
61
91
  subject.emit(event)
62
92
  end
63
93
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hallmonitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris TenHarmsel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-12 00:00:00.000000000 Z
11
+ date: 2015-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json