canvas_statsd 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20b65aeab0a367d302645a5fa07c71e7872cb01c
4
- data.tar.gz: 5462c8e69bb13a7d9f45edec5798e6a14314fec9
3
+ metadata.gz: 7f93d09a249a24e64798dd4e4b1554b1132cf2e5
4
+ data.tar.gz: c104aae22f8fe8bf5f86d2e92aa2cda2218f1fb0
5
5
  SHA512:
6
- metadata.gz: aee1dbcd4be2719c96495044846a917f422e2ce02e1cd1f0f142280afb50a4e25a30c92ee7055a1922be08b7c0299f6752cea06d90b9112b31b3ab25310f36f9
7
- data.tar.gz: 49c787c0a6a4ee69f9f68370405218311428d68a7e1f4a1c8449b2eba1108bea6f4b2ecd464961807f08cc9078e6e6d9c1f056d3a6f2b644a7d21474bcbf9450
6
+ metadata.gz: dfe9e66cff26fe7687e592d6d668295609577228dfa46ae7c3f81cdd2295585cbe9ec571f1547554e0df429012d02d3d68111fb9167ae2ecb63dc70380d3ebc8
7
+ data.tar.gz: ab4ffc4acf17efc36669900d9e26400a18fc59e547162e59974e15146599129edae89dd4ef190a5e46e62ce9dea43cfb0b1795e4e46fb6f6d774d2c67ca9c6aa
data/lib/canvas_statsd.rb CHANGED
@@ -3,6 +3,8 @@ require "aroi" if defined?(ActiveRecord)
3
3
 
4
4
  module CanvasStatsd
5
5
 
6
+ class ConfigurationError < StandardError; end
7
+
6
8
  require "canvas_statsd/statsd"
7
9
  require "canvas_statsd/request_stat"
8
10
  require "canvas_statsd/counter"
@@ -27,11 +29,20 @@ module CanvasStatsd
27
29
  append_hostname: env.fetch('CANVAS_STATSD_APPEND_HOSTNAME', nil),
28
30
  }
29
31
  config.delete_if {|k,v| v.nil?}
30
- config[:append_hostname] = false if config[:append_hostname] == 'false';
31
- config[:append_hostname] = true if config[:append_hostname] == 'true';
32
+ convert_bool(config, :append_hostname)
32
33
  config[:host] ? config : {}
33
34
  end
34
35
 
36
+ def self.convert_bool(hash, key)
37
+ value = hash[key]
38
+ return if value.nil?
39
+ unless ['true', 'false', true, false].include?(value)
40
+ message = "#{key} must be a boolean, or the string representation of a boolean, got: #{value}"
41
+ raise CanvasStatsd::ConfigurationError, message
42
+ end
43
+ hash[key] = (value == 'true' || value == true) ? true : false
44
+ end
45
+
35
46
  def self.track_default_metrics options={}
36
47
  CanvasStatsd::DefaultTracking.track_default_metrics options
37
48
  end
@@ -66,6 +66,39 @@ describe CanvasStatsd do
66
66
  end
67
67
  end
68
68
 
69
+ describe ".convert_bool" do
70
+ it 'sets string true values to boolean true' do
71
+ config = {potential_string_bool: 'true'}
72
+ CanvasStatsd.convert_bool(config, :potential_string_bool)
73
+ expect(config[:potential_string_bool]).to be(true)
74
+ end
75
+ it 'sets boolean true values to boolean true' do
76
+ config = {potential_string_bool: true}
77
+ CanvasStatsd.convert_bool(config, :potential_string_bool)
78
+ expect(config[:potential_string_bool]).to be(true)
79
+ end
80
+ it 'sets false strings to boolean false' do
81
+ config = {potential_string_bool: 'false'}
82
+ CanvasStatsd.convert_bool(config, :potential_string_bool)
83
+ expect(config[:potential_string_bool]).to be(false)
84
+ end
85
+ it 'sets false booleans to boolean false' do
86
+ config = {potential_string_bool: false}
87
+ CanvasStatsd.convert_bool(config, :potential_string_bool)
88
+ expect(config[:potential_string_bool]).to be(false)
89
+ end
90
+ it 'makes no change for nil values' do
91
+ config = {foo: 'bar'}
92
+ CanvasStatsd.convert_bool(config, :potential_string_bool)
93
+ expect(config).to eq({foo: 'bar'})
94
+ end
95
+ it 'raises error for non true or false strings or booleans' do
96
+ config = {potential_string_bool: 'trrruuue'}
97
+ expect{CanvasStatsd.convert_bool(config, :potential_string_bool)}.to raise_error(CanvasStatsd::ConfigurationError)
98
+ end
99
+
100
+ end
101
+
69
102
  describe ".env_settings" do
70
103
  it 'returns empty hash when no CANVAS_STATSD_HOST found' do
71
104
  env = {
@@ -120,6 +153,31 @@ describe CanvasStatsd do
120
153
  }
121
154
  expect(CanvasStatsd.env_settings(env)).to eq(expected)
122
155
  end
156
+
157
+ it 'keeps boolean false values for append_hostname' do
158
+ env = {
159
+ 'CANVAS_STATSD_HOST' => 'statsd.example.org',
160
+ 'CANVAS_STATSD_APPEND_HOSTNAME' => false,
161
+ }
162
+ expected = {
163
+ host: 'statsd.example.org',
164
+ append_hostname: false,
165
+ }
166
+ expect(CanvasStatsd.env_settings(env)).to eq(expected)
167
+ end
168
+
169
+ it 'keeps boolean true values for append_hostname' do
170
+ env = {
171
+ 'CANVAS_STATSD_HOST' => 'statsd.example.org',
172
+ 'CANVAS_STATSD_APPEND_HOSTNAME' => true,
173
+ }
174
+ expected = {
175
+ host: 'statsd.example.org',
176
+ append_hostname: true,
177
+ }
178
+ expect(CanvasStatsd.env_settings(env)).to eq(expected)
179
+ end
180
+
123
181
  end
124
182
 
125
183
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canvas_statsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Cloward
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-18 00:00:00.000000000 Z
11
+ date: 2015-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: statsd-ruby