loglevel 0.1.1 → 0.2.1

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: 9d42d88fe631ce356e355059ad3fbd73a5b653f8
4
- data.tar.gz: 8d2d36d8d28f46c09ac78a64504f9fb0fd76c012
3
+ metadata.gz: 1bd8c2f39f120e520842eba218003ea8b70ae4e8
4
+ data.tar.gz: 7e36d867091c81a083582f5ccf0c61681406aebf
5
5
  SHA512:
6
- metadata.gz: c83779e2323cfd93d9b24c15c402bbacbd63c6fd67ad267abaf734b7de947757c46a5e2664c251bc5b5376197e31e135cb18d46ffc357c64dc8782853d429d56
7
- data.tar.gz: db73609a238674d3d3683d8618dfd141725125ca635bc20da3a67452e39218217505e8404aeccba5096b270803e14363adefd2713e66c664a111eb9826d8f660
6
+ metadata.gz: d041a8329f0bd72c8fff3d2d7463810222aedbeb806856fcf84b8a04b3aac9fe52a4d81cf494d9baf1db74a93d125a07029a93057df6388b5c15c1811e6791d9
7
+ data.tar.gz: 6b0ac0586984255775ea12f64bf834e4900c65d3ea26d3e1409bfc8f1270d85784abdbd54367e8ccfc1dfefe752572cdd8d13af0b145ae1d0f68daec210c597d
data/.codeclimate.yml ADDED
@@ -0,0 +1,17 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ fixme:
9
+ enabled: true
10
+ rubocop:
11
+ enabled: true
12
+ ratings:
13
+ paths:
14
+ - "**.rb"
15
+ exclude_paths:
16
+ - script/
17
+ - spec/
data/CHANGELOG.md CHANGED
@@ -2,7 +2,14 @@
2
2
 
3
3
  ## [Unreleased](https://github.com/dominicsayers/loglevel/tree/HEAD)
4
4
 
5
- [Full Changelog](https://github.com/dominicsayers/loglevel/compare/v0.1.0...HEAD)
5
+ [Full Changelog](https://github.com/dominicsayers/loglevel/compare/v0.1.1...HEAD)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Loglevel release [\#2](https://github.com/dominicsayers/loglevel/pull/2) ([dominicsayers](https://github.com/dominicsayers))
10
+
11
+ ## [v0.1.1](https://github.com/dominicsayers/loglevel/tree/v0.1.1) (2017-03-29)
12
+ [Full Changelog](https://github.com/dominicsayers/loglevel/compare/v0.1.0...v0.1.1)
6
13
 
7
14
  **Merged pull requests:**
8
15
 
data/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  [![Gem version](https://badge.fury.io/rb/loglevel.svg)](https://rubygems.org/gems/loglevel)
4
4
  [![Gem downloads](https://img.shields.io/gem/dt/loglevel.svg)](https://rubygems.org/gems/loglevel)
5
5
  [![Build Status](https://travis-ci.org/dominicsayers/loglevel.svg?branch=master)](https://travis-ci.org/dominicsayers/loglevel)
6
- [![Code quality](http://img.shields.io/codeclimate/github/dominicsayers/loglevel.svg?style=flat)](https://codeclimate.com/github/dominicsayers/loglevel)
7
- [![Coverage Status](https://coveralls.io/repos/github/dominicsayers/loglevel/badge.svg?branch=master)](https://coveralls.io/github/dominicsayers/loglevel?branch=master)
6
+ [![Code Climate](https://codeclimate.com/github/dominicsayers/loglevel/badges/gpa.svg)](https://codeclimate.com/github/dominicsayers/loglevel)
7
+ [![Test Coverage](https://codeclimate.com/github/dominicsayers/loglevel/badges/coverage.svg)](https://codeclimate.com/github/dominicsayers/loglevel/coverage)
8
8
  [![Dependency Status](https://gemnasium.com/badges/github.com/dominicsayers/loglevel.svg)](https://gemnasium.com/github.com/dominicsayers/loglevel)
9
9
  [![Security](https://hakiri.io/github/dominicsayers/loglevel/master.svg)](https://hakiri.io/github/dominicsayers/loglevel/master)
10
10
 
data/lib/loglevel.rb CHANGED
@@ -3,88 +3,102 @@ require 'loglevel/active_record'
3
3
  require 'loglevel/http_logger'
4
4
  require 'loglevel/help'
5
5
 
6
- module Loglevel
6
+ class Loglevel
7
7
  ENV_VAR_LEVEL = 'LOGLEVEL'.freeze
8
8
  ENV_VAR_LOGGER = 'LOGLEVEL_LOGGER'.freeze
9
9
  ENV_VAR_DEVICE = 'LOGLEVEL_DEVICE'.freeze
10
10
  ENV_VAR_CLASSES = 'LOGLEVEL_CLASSES'.freeze
11
- LOG_LEVELS = %w(DEBUG INFO WARN ERROR FATAL UNKNOWN).freeze
11
+ LOGLEVELS = %w(DEBUG INFO WARN ERROR FATAL UNKNOWN).freeze
12
12
 
13
13
  class << self
14
- attr_reader :classes
15
- attr_writer :logger
16
-
17
14
  def setup
18
- return unless ENV[ENV_VAR_LEVEL]
15
+ new
16
+ end
17
+ end
19
18
 
20
- @classes = Loglevel::Classes.new.classes
21
- @settings = nil
22
- @logger = nil
23
- @log_level = nil
19
+ attr_reader :classes
20
+ attr_writer :logger
24
21
 
25
- setup_active_record
26
- setup_http_logger
27
- setup_remaining_classes
22
+ def logger
23
+ @logger ||= logger_class.new device
24
+ end
28
25
 
29
- help if help?
30
- end
26
+ def level
27
+ @level ||= logger_class.const_get level_name
28
+ end
31
29
 
32
- def logger
33
- @logger ||= logger_class.new log_device
34
- end
30
+ private
35
31
 
36
- def log_level
37
- @log_level ||= logger_class.const_get log_level_name
38
- end
32
+ def initialize
33
+ return unless ENV[ENV_VAR_LEVEL]
39
34
 
40
- private
35
+ @classes = Loglevel::Classes.new.classes
36
+ @settings = nil
37
+ @logger = nil
38
+ @level = nil
41
39
 
42
- include Loglevel::ActiveRecord
43
- include Loglevel::HttpLogger
44
- include Loglevel::Help
40
+ setup_classes
41
+ announce
42
+ end
45
43
 
46
- # Setup any other classes (e.g. Rails)
47
- def setup_remaining_classes
48
- classes.each do |klass|
49
- klass.logger = logger
50
- klass.logger.level = log_level
51
- end
52
- end
44
+ def setup_classes
45
+ @classes_to_setup = @classes.dup
46
+ setup_active_record
47
+ setup_http_logger
48
+ setup_remaining_classes
49
+ end
53
50
 
54
- def log_level_name
55
- (LOG_LEVELS & settings).first || 'INFO'
51
+ # Setup any other classes (e.g. Rails)
52
+ def setup_remaining_classes
53
+ @classes_to_setup.each do |klass|
54
+ klass.logger = logger
55
+ klass.logger.level = level
56
56
  end
57
+ end
57
58
 
58
- def logger_class
59
- Object.const_get ENV.fetch(ENV_VAR_LOGGER, 'Logger')
60
- end
59
+ def announce
60
+ help if help?
61
+ puts inspect if level_name == 'DEBUG'
62
+ puts debug if lookup('__DEBUG')
63
+ end
61
64
 
62
- def log_device
63
- %w(STDOUT STDERR).include?(log_device_name) ? Object.const_get(log_device_name) : log_device_name
64
- end
65
+ def level_name
66
+ (LOGLEVELS & settings).first || 'INFO'
67
+ end
65
68
 
66
- def log_device_name
67
- ENV.fetch(ENV_VAR_DEVICE, 'STDOUT')
68
- end
69
+ def logger_class
70
+ Object.const_get ENV.fetch(ENV_VAR_LOGGER, 'Logger')
71
+ end
69
72
 
70
- # Implementing as a method in case someone wants to detect the OS and make
71
- # an OS-dependent null device
72
- def null_device
73
- @null_device ||= '/dev/null'
74
- end
73
+ def device
74
+ %w(STDOUT STDERR).include?(device_name) ? Object.const_get(device_name) : device_name
75
+ end
75
76
 
76
- def null_logger
77
- @null_logger ||= logger_class.new null_device
78
- end
77
+ def device_name
78
+ ENV.fetch(ENV_VAR_DEVICE, 'STDOUT')
79
+ end
79
80
 
80
- def settings
81
- @settings ||= ENV.fetch(ENV_VAR_LEVEL, '').upcase.split(',')
82
- end
81
+ # Implementing as a method in case someone wants to detect the OS and make
82
+ # an OS-dependent null device
83
+ def null_device
84
+ @null_device ||= '/dev/null'
85
+ end
83
86
 
84
- def lookup(setting)
85
- settings.include?(setting)
86
- end
87
+ def null_logger
88
+ @null_logger ||= logger_class.new null_device
89
+ end
90
+
91
+ def lookup(setting)
92
+ settings.include?(setting)
87
93
  end
94
+
95
+ def settings
96
+ @settings ||= ENV.fetch(ENV_VAR_LEVEL, '').upcase.split(',')
97
+ end
98
+
99
+ include Loglevel::ActiveRecord
100
+ include Loglevel::HttpLogger
101
+ include Loglevel::Help
88
102
  end
89
103
 
90
104
  Loglevel.setup
@@ -1,18 +1,20 @@
1
1
  # ActiveRecord-specific settings
2
- module Loglevel
2
+ class Loglevel
3
3
  module ActiveRecord
4
+ private
5
+
4
6
  def active_record?
5
7
  !lookup('NOAR')
6
8
  end
7
9
 
8
10
  def setup_active_record
9
- return unless defined?(::ActiveRecord::Base) && classes.delete(::ActiveRecord::Base)
11
+ return unless defined?(::ActiveRecord::Base) && @classes_to_setup.delete(::ActiveRecord::Base)
10
12
  active_record? ? setup_active_record_logger_to_log : setup_active_record_logger_not_to_log
11
13
  end
12
14
 
13
15
  def setup_active_record_logger_to_log
14
16
  ::ActiveRecord::Base.logger = logger
15
- ::ActiveRecord::Base.logger.level = log_level
17
+ ::ActiveRecord::Base.logger.level = level
16
18
  end
17
19
 
18
20
  def setup_active_record_logger_not_to_log
@@ -1,4 +1,4 @@
1
- module Loglevel
1
+ class Loglevel
2
2
  class Classes
3
3
  attr_reader :classes
4
4
 
data/lib/loglevel/help.rb CHANGED
@@ -1,10 +1,6 @@
1
1
  # Help
2
- module Loglevel
2
+ class Loglevel
3
3
  module Help
4
- def help?
5
- lookup('HELP') || settings == ['TRUE']
6
- end
7
-
8
4
  def help
9
5
  logger.info <<-HELP.gsub(' ', '')
10
6
  Usage: DEBUG=SETTING,SETTING,SETTING rails server
@@ -24,5 +20,27 @@ module Loglevel
24
20
  HTTP messages will only be shown if http_logger gem is present
25
21
  HELP
26
22
  end
23
+
24
+ def inspect
25
+ "#<#{self.class}: logger=#{logger_class}, device=#{device_name}, level=#{level_name}, settings=#{settings}>"
26
+ end
27
+
28
+ def debug
29
+ debug = classes.map do |klass|
30
+ l = klass.logger
31
+ d = l.instance_variable_get('@logdev')
32
+ f = d.filename || d.dev || 'nil'
33
+ v = self.class::LOGLEVELS[l.level]
34
+ "#{klass}: logger=#{l.class}, device=#{f}, level=#{v}"
35
+ end
36
+
37
+ debug.join("\n")
38
+ end
39
+
40
+ private
41
+
42
+ def help?
43
+ lookup('HELP') || settings == ['TRUE']
44
+ end
27
45
  end
28
46
  end
@@ -1,6 +1,8 @@
1
1
  # HttpLogger-specific settings
2
- module Loglevel
2
+ class Loglevel
3
3
  module HttpLogger
4
+ private
5
+
4
6
  def http?
5
7
  !lookup('NOHTTP')
6
8
  end
@@ -14,13 +16,13 @@ module Loglevel
14
16
  end
15
17
 
16
18
  def setup_http_logger
17
- return unless defined?(::HttpLogger) && classes.delete(::HttpLogger)
19
+ return unless defined?(::HttpLogger) && @classes_to_setup.delete(::HttpLogger)
18
20
  http? ? setup_http_logger_to_log : setup_http_logger_not_to_log
19
21
  end
20
22
 
21
23
  def setup_http_logger_to_log
22
24
  ::HttpLogger.logger = logger
23
- ::HttpLogger.level = log_level_name.downcase.to_sym
25
+ ::HttpLogger.level = level_name.downcase.to_sym
24
26
  ::HttpLogger.log_response_body = response_body?
25
27
  ::HttpLogger.log_headers = request_headers?
26
28
  ::HttpLogger.ignore = [/9200/, /7474/] # ignore Elasticsearch & Neo4J
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Loglevel
4
- VERSION = '0.1.1'.freeze
3
+ class Loglevel
4
+ VERSION = '0.2.1'.freeze
5
5
  end
data/script/console CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/bin/sh
2
- bundle exec irb -rubygems -I lib -r loglevel.rb
2
+ bundle exec irb -rubygems -I lib -r logger.rb -r loglevel.rb
@@ -29,16 +29,15 @@ RSpec.describe Loglevel::ActiveRecord do
29
29
  end
30
30
 
31
31
  context 'NOAR' do
32
- before do
33
- ENV.store Loglevel::ENV_VAR_LEVEL, 'noAR' # the capitalization is intentional
34
- Loglevel.setup
35
- end
32
+ let(:loglevel) { Loglevel.setup }
36
33
 
34
+ before { ENV.store Loglevel::ENV_VAR_LEVEL, 'noAR' } # the capitalization is intentional
37
35
  after { ENV.delete Loglevel::ENV_VAR_LEVEL }
38
36
 
39
37
  it 'has the expected ActiveRecord settings' do
40
- expect(::ActiveRecord::Base.logger).to eq Loglevel.send(:null_logger)
41
- expect(::ActiveRecord::Base.logger.level).to eq Logger.const_get('FATAL')
38
+ loglevel # force instantiation
39
+ expect(::ActiveRecord::Base.logger).to eq loglevel.send(:null_logger)
40
+ expect(::ActiveRecord::Base.logger.level).to eq ::Logger.const_get('FATAL')
42
41
  end
43
42
  end
44
43
  end
@@ -1,27 +1,78 @@
1
1
  RSpec.describe Loglevel::Help do
2
2
  context 'HELP' do
3
3
  before do
4
+ class MyLogDevice
5
+ attr_reader :filename, :dev
6
+
7
+ def initialize(device)
8
+ @dev = device
9
+ end
10
+ end
11
+
4
12
  class MyLogger
5
13
  INFO = 1
6
14
  attr_accessor :level
7
15
 
8
- def initialize(device); end
16
+ def initialize(device)
17
+ @logdev = MyLogDevice.new(device)
18
+ end
9
19
 
10
20
  def info(message); end
11
21
  end
12
22
 
13
23
  ENV.store Loglevel::ENV_VAR_LOGGER, 'MyLogger'
24
+ ENV.store Loglevel::ENV_VAR_DEVICE, 'MyDevice'
14
25
  ENV.store Loglevel::ENV_VAR_LEVEL, 'Help' # the capitalization is intentional
15
26
  end
16
27
 
17
28
  after do
18
29
  ENV.delete Loglevel::ENV_VAR_LOGGER
30
+ ENV.delete Loglevel::ENV_VAR_DEVICE
19
31
  ENV.delete Loglevel::ENV_VAR_LEVEL
32
+ Object.send(:remove_const, :MyLogger)
33
+ Object.send(:remove_const, :MyLogDevice)
20
34
  end
21
35
 
22
36
  it 'has the expected ActiveRecord settings' do
23
37
  expect_any_instance_of(MyLogger).to receive(:info).once
24
38
  Loglevel.setup
25
39
  end
40
+
41
+ it 'shows information about itself' do
42
+ expect(Loglevel.setup.inspect).to eq(
43
+ '#<Loglevel: logger=MyLogger, device=MyDevice, level=INFO, settings=["HELP"]>'
44
+ )
45
+ end
46
+
47
+ it 'shows debugging information about itself' do
48
+ class MyClass
49
+ class << self
50
+ attr_accessor :logger
51
+ end
52
+ end
53
+
54
+ class Rails < MyClass; end
55
+
56
+ module ActiveRecord
57
+ class Base < Rails; end
58
+ end
59
+
60
+ class HttpLogger < Rails
61
+ class << self
62
+ attr_accessor :level, :log_response_body, :log_headers, :ignore
63
+ end
64
+ end
65
+
66
+ expect(Loglevel.setup.debug).to eq <<-DEBUG.gsub(' ', '').chomp
67
+ Rails: logger=MyLogger, device=MyDevice, level=INFO
68
+ ActiveRecord::Base: logger=MyLogger, device=MyDevice, level=INFO
69
+ HttpLogger: logger=MyLogger, device=MyDevice, level=INFO
70
+ DEBUG
71
+
72
+ Object.send(:remove_const, :MyClass)
73
+ Object.send(:remove_const, :Rails)
74
+ Object.send(:remove_const, :ActiveRecord)
75
+ Object.send(:remove_const, :HttpLogger)
76
+ end
26
77
  end
27
78
  end
@@ -29,15 +29,14 @@ RSpec.describe Loglevel::HttpLogger do
29
29
  end
30
30
 
31
31
  context 'NOHTTP' do
32
- before do
33
- ENV.store Loglevel::ENV_VAR_LEVEL, 'noHttp' # the capitalization is intentional
34
- Loglevel.setup
35
- end
32
+ let(:loglevel) { Loglevel.setup }
36
33
 
34
+ before { ENV.store Loglevel::ENV_VAR_LEVEL, 'NoHttp' } # the capitalization is intentional
37
35
  after { ENV.delete Loglevel::ENV_VAR_LEVEL }
38
36
 
39
37
  it 'has the expected HttpLogger settings' do
40
- expect(::HttpLogger.logger).to eq Loglevel.send(:null_logger)
38
+ loglevel # force instantiation
39
+ expect(::HttpLogger.logger).to eq loglevel.send(:null_logger)
41
40
  expect(::HttpLogger.level).to eq :fatal
42
41
  end
43
42
  end
@@ -29,14 +29,14 @@ RSpec.describe Loglevel do
29
29
  end
30
30
 
31
31
  context 'no environment variable' do
32
- before { Loglevel.setup }
32
+ let(:loglevel) { Loglevel.setup }
33
33
 
34
34
  it 'has the expected logger class' do
35
- expect(Loglevel.send(:logger_class)).to eq Loglevel.send(:logger_class)
35
+ expect(loglevel.send(:logger_class)).to eq ::Logger
36
36
  end
37
37
 
38
38
  it 'has the expected device' do
39
- expect(Loglevel.send(:log_device)).to eq STDOUT
39
+ expect(loglevel.send(:device)).to eq STDOUT
40
40
  end
41
41
 
42
42
  it 'has the expected log level' do
@@ -56,32 +56,33 @@ RSpec.describe Loglevel do
56
56
  end
57
57
 
58
58
  context 'defaults' do
59
- before do
60
- ENV.store Loglevel::ENV_VAR_LEVEL, 'INFO'
61
- Loglevel.setup
62
- end
59
+ let(:loglevel) { Loglevel.setup }
63
60
 
61
+ before { ENV.store Loglevel::ENV_VAR_LEVEL, 'INFO' }
64
62
  after { ENV.delete Loglevel::ENV_VAR_LEVEL }
65
63
 
66
64
  it 'has the expected logger class' do
67
- expect(Loglevel.send(:logger_class)).to eq ::Logger
65
+ expect(loglevel.send(:logger_class)).to eq ::Logger
68
66
  end
69
67
 
70
68
  it 'has the expected device' do
71
- expect(Loglevel.send(:log_device)).to eq STDOUT
69
+ expect(loglevel.send(:device)).to eq STDOUT
72
70
  end
73
71
 
74
72
  it 'has the expected log level' do
75
- expect(Rails.logger).to eq Loglevel.logger
76
- expect(Rails.logger.level).to eq Logger.const_get('INFO')
73
+ loglevel # force instantiation
74
+ expect(Rails.logger).to eq loglevel.logger
75
+ expect(Rails.logger.level).to eq ::Logger.const_get('INFO')
77
76
  end
78
77
 
79
78
  it 'has the expected ActiveRecord::Base settings' do
80
- expect(::ActiveRecord::Base.logger).to eq Loglevel.logger
81
- expect(::ActiveRecord::Base.logger.level).to eq Logger.const_get('INFO')
79
+ loglevel # force instantiation
80
+ expect(::ActiveRecord::Base.logger).to eq loglevel.logger
81
+ expect(::ActiveRecord::Base.logger.level).to eq ::Logger.const_get('INFO')
82
82
  end
83
83
 
84
84
  it 'has the expected HttpLogger settings' do
85
+ loglevel # force instantiation
85
86
  expect(::HttpLogger.level).to eq :info
86
87
  expect(::HttpLogger.log_response_body).to be_truthy
87
88
  expect(::HttpLogger.log_headers).to be_truthy
@@ -111,44 +112,39 @@ RSpec.describe Loglevel do
111
112
  end
112
113
 
113
114
  context 'HTTP and ActiveRecord' do
114
- before do
115
- ENV.store Loglevel::ENV_VAR_LEVEL, 'WARN'
116
- Loglevel.setup
117
- end
115
+ let(:loglevel) { Loglevel.setup }
118
116
 
119
- after do
120
- ENV.delete Loglevel::ENV_VAR_LEVEL
121
- end
117
+ before { ENV.store Loglevel::ENV_VAR_LEVEL, 'WARN' }
118
+ after { ENV.delete Loglevel::ENV_VAR_LEVEL }
122
119
 
123
120
  it 'has the expected logger class' do
124
- expect(Loglevel.send(:logger_class)).to eq ::MyLogger
121
+ expect(loglevel.send(:logger_class)).to eq ::MyLogger
125
122
  end
126
123
 
127
124
  it 'has the expected device' do
128
- expect(Loglevel.send(:log_device)).to eq STDERR
125
+ expect(loglevel.send(:device)).to eq STDERR
129
126
  end
130
127
 
131
128
  it 'has the expected log level' do
132
- expect(Rails.logger).to eq Loglevel.logger
133
- expect(Rails.logger.level).to eq Logger.const_get('WARN')
129
+ loglevel # force instantiation
130
+ expect(Rails.logger).to eq loglevel.logger
131
+ expect(Rails.logger.level).to eq ::Logger.const_get('WARN')
134
132
  end
135
133
  end
136
134
 
137
135
  context 'HTTP but not ActiveRecord' do
138
- before do
139
- ENV.store Loglevel::ENV_VAR_LEVEL, 'WARN,NOBODY,NOHEADERS,NOAR'
140
- Loglevel.setup
141
- end
136
+ let(:loglevel) { Loglevel.setup }
142
137
 
143
- after do
144
- ENV.delete Loglevel::ENV_VAR_LEVEL
145
- end
138
+ before { ENV.store Loglevel::ENV_VAR_LEVEL, 'WARN,NOBODY,NOHEADERS,NOAR' }
139
+ after { ENV.delete Loglevel::ENV_VAR_LEVEL }
146
140
 
147
141
  it 'has the expected ActiveRecord::Base settings' do
148
- expect(::ActiveRecord::Base.logger).to eq Loglevel.send(:null_logger)
142
+ loglevel # force instantiation
143
+ expect(::ActiveRecord::Base.logger).to eq loglevel.send(:null_logger)
149
144
  end
150
145
 
151
146
  it 'has the expected HttpLogger settings' do
147
+ loglevel # force instantiation
152
148
  expect(::HttpLogger.level).to eq :warn
153
149
  expect(::HttpLogger.log_response_body).to be_falsey
154
150
  expect(::HttpLogger.log_headers).to be_falsey
@@ -157,21 +153,19 @@ RSpec.describe Loglevel do
157
153
  end
158
154
 
159
155
  context 'ActiveRecord but not HTTP' do
160
- before do
161
- ENV.store Loglevel::ENV_VAR_LEVEL, 'WARN,NOHTTP'
162
- Loglevel.setup
163
- end
156
+ let(:loglevel) { Loglevel.setup }
164
157
 
165
- after do
166
- ENV.delete Loglevel::ENV_VAR_LEVEL
167
- end
158
+ before { ENV.store Loglevel::ENV_VAR_LEVEL, 'WARN,NOHTTP' }
159
+ after { ENV.delete Loglevel::ENV_VAR_LEVEL }
168
160
 
169
161
  it 'has the expected ActiveRecord::Base settings' do
170
- expect(::ActiveRecord::Base.logger).to eq Loglevel.logger
171
- expect(::ActiveRecord::Base.logger.level).to eq Logger.const_get('WARN')
162
+ loglevel # force instantiation
163
+ expect(::ActiveRecord::Base.logger).to eq loglevel.logger
164
+ expect(::ActiveRecord::Base.logger.level).to eq ::Logger.const_get('WARN')
172
165
  end
173
166
 
174
167
  it 'has the expected HttpLogger settings' do
168
+ loglevel # force instantiation
175
169
  expect(::HttpLogger.level).to eq :fatal
176
170
  expect(::HttpLogger.log_response_body).to be_falsey
177
171
  expect(::HttpLogger.log_headers).to be_falsey
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loglevel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominic Sayers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-29 00:00:00.000000000 Z
11
+ date: 2017-03-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A simple gem to interact with Mailchimp through their API v3
14
14
  email:
@@ -17,6 +17,7 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - .codeclimate.yml
20
21
  - .gitignore
21
22
  - .hound.yml
22
23
  - .rspec
@@ -64,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
65
  version: '0'
65
66
  requirements: []
66
67
  rubyforge_project:
67
- rubygems_version: 2.4.8
68
+ rubygems_version: 2.6.11
68
69
  signing_key:
69
70
  specification_version: 4
70
71
  summary: 'Example: mailchimp.lists("My first list").member("ann@example.com")'