loglevel 0.1.1 → 0.2.1

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: 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")'