loog 0.3.0 → 0.4.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
  SHA256:
3
- metadata.gz: ff39830a0294bd0cbedcb2cf613e0fdf8ec6985cd0618cda087ff637c1f3b4fc
4
- data.tar.gz: 638ccfc03eeffd5297001a9f83c6f108d2910d21ac59212ec57cace1f06952ea
3
+ metadata.gz: 36176706198bed42b0858771358d9c016f39437fa5a9fedc6391fab3cf8d1518
4
+ data.tar.gz: 9ef77b0a794eb04027e16fbd12cf208488bc6052ee87ba7de9bd839188d6c6a9
5
5
  SHA512:
6
- metadata.gz: 02d8f0c27262e051c8e22afb506e90dcc1d719f188fba1fcd28f27a1e996bffd2229636d59bc21eb8c48374ff5703c44ae3f4aea9f49077dc36e296fc66476bf
7
- data.tar.gz: bc0e4ddefcb55a3f041b3e4ce37f7ab6840531cdbcaa38d25d0eec3f1e6190062f585f9744356175a587a5b5d714b3e49f763644dc427d766d0eca6b861061cd
6
+ metadata.gz: 9ede844cd2c3f8740de75171320397bdc01ecafe2ec5212dfaf76aa68ea85b7f02f4a5c21d0abf6f15173e2bc3b1e69caebc00d7526dc38a90cbde579fb820bb
7
+ data.tar.gz: ccb2526f6c8eb792cf16162e35b2f06638ac53d6aaa2cc1f26de86ddcbd28dc4b2c73a7c0cbecd495bbf29eee76bbc4f5465b1bf617079e5a20e368f8be58bb7
data/.rubocop.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  AllCops:
2
2
  DisplayCopNames: true
3
3
  TargetRubyVersion: 2.3.3
4
+ SuggestExtensions: false
5
+ NewCops: enable
4
6
 
5
7
  Layout/EmptyLineAfterGuardClause:
6
8
  Enabled: false
@@ -16,7 +18,7 @@ Metrics/PerceivedComplexity:
16
18
  Max: 10
17
19
  Metrics/ParameterLists:
18
20
  Max: 10
19
- Layout/AlignParameters:
21
+ Layout/ParameterAlignment:
20
22
  Enabled: false
21
23
  Style/ClassAndModuleChildren:
22
24
  Enabled: false
data/.rultor.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  docker:
2
- image: yegor256/rultor-image:1.9.1
2
+ image: yegor256/rultor-image:1.21.0
3
3
  assets:
4
4
  rubygems.yml: yegor256/home#assets/rubygems.yml
5
5
  install: |
data/.simplecov CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2019 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -18,21 +20,21 @@
18
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
21
  # SOFTWARE.
20
22
 
21
- if Gem.win_platform? then
23
+ if Gem.win_platform?
22
24
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
23
25
  SimpleCov::Formatter::HTMLFormatter
24
26
  ]
25
27
  SimpleCov.start do
26
- add_filter "/test/"
27
- add_filter "/features/"
28
+ add_filter '/test/'
29
+ add_filter '/features/'
28
30
  end
29
31
  else
30
32
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
31
33
  [SimpleCov::Formatter::HTMLFormatter]
32
34
  )
33
35
  SimpleCov.start do
34
- add_filter "/test/"
35
- add_filter "/features/"
36
+ add_filter '/test/'
37
+ add_filter '/features/'
36
38
  minimum_coverage 60
37
39
  end
38
40
  end
data/Gemfile CHANGED
@@ -22,3 +22,10 @@
22
22
 
23
23
  source 'https://rubygems.org'
24
24
  gemspec
25
+
26
+ gem 'minitest', '5.18.0', require: false
27
+ gem 'rake', '13.0.6', require: false
28
+ gem 'rdoc', '6.5.0', require: false
29
+ gem 'rubocop', '1.48.1', require: false
30
+ gem 'rubocop-rspec', '2.19.0', require: false
31
+ gem 'simplecov', '0.22.0', require: false
data/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  <img src="/logo.svg" width="64px" height="64px"/>
2
2
 
3
- [![Managed by Zerocracy](https://www.0crat.com/badge/C3RFVLU72.svg)](https://www.0crat.com/p/C3RFVLU72)
4
3
  [![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)
5
4
  [![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/loog)](http://www.rultor.com/p/yegor256/loog)
6
5
  [![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)
@@ -32,7 +31,9 @@ The gem is basically a provider of a few pre-configured loggers, which
32
31
  you can use for production (`Loog::REGULAR`) or for testing (`Loog::VERBOSE`).
33
32
  You can also shut it up with `Loog::NULL`.
34
33
 
35
- That's it.
34
+ There is also `Logger::Buffer` class that you can use for testing.
35
+ It accumulates all log calls and then returns the entire output
36
+ through the `to_s()` method.
36
37
 
37
38
  ## How to contribute
38
39
 
data/lib/loog.rb CHANGED
@@ -46,12 +46,12 @@ module Loog
46
46
  when 'DEBUG'
47
47
  prefix = 'D: '
48
48
  end
49
- prefix + msg.to_s.rstrip.gsub(/\n/, "\n" + (' ' * prefix.length)) + "\n"
49
+ "#{prefix}#{msg.to_s.rstrip.gsub(/\n/, "\n#{' ' * prefix.length}")}\n"
50
50
  end
51
51
 
52
52
  # Short formatter
53
53
  SHORT = proc do |_severity, _time, _target, msg|
54
- msg.to_s.rstrip + "\n"
54
+ "#{msg.to_s.rstrip}\n"
55
55
  end
56
56
 
57
57
  # Full formatter
@@ -65,27 +65,47 @@ module Loog
65
65
  end
66
66
 
67
67
  # No logging at all
68
- NULL = Logger.new(STDOUT)
68
+ NULL = Logger.new($stdout)
69
69
  NULL.level = Logger::UNKNOWN
70
70
  NULL.freeze
71
71
 
72
72
  # Everything, including debug
73
- VERBOSE = Logger.new(STDOUT)
73
+ VERBOSE = Logger.new($stdout)
74
74
  VERBOSE.level = Logger::DEBUG
75
75
  VERBOSE.formatter = COMPACT
76
76
  VERBOSE.freeze
77
77
 
78
78
  # Info and errors, no debug info
79
- REGULAR = Logger.new(STDOUT)
79
+ REGULAR = Logger.new($stdout)
80
80
  REGULAR.level = Logger::INFO
81
81
  REGULAR.formatter = COMPACT
82
82
  REGULAR.freeze
83
83
 
84
84
  # Errors only
85
- ERRORS = Logger.new(STDOUT)
85
+ ERRORS = Logger.new($stdout)
86
86
  ERRORS.level = Logger::ERROR
87
87
  ERRORS.formatter = COMPACT
88
88
  ERRORS.freeze
89
- end
90
89
 
91
- require_relative 'loog/tee'
90
+ # Accumulator of everything. This class may be used
91
+ # for testing, when it's necessary to accumulate all log
92
+ # messages in one place and then "assert" the presence
93
+ # of certain strings inside them.
94
+ class Buffer < Logger
95
+ def initialize
96
+ super(
97
+ $stdout,
98
+ level: Logger::DEBUG,
99
+ formatter: proc do |severity, time, target, msg|
100
+ @lines.push("#{severity} #{time} #{target} #{msg}")
101
+ ''
102
+ end
103
+ )
104
+ @lines = []
105
+ end
106
+
107
+ def to_s
108
+ @lines.join("\n")
109
+ end
110
+ end
111
+ end
data/loog.gemspec CHANGED
@@ -24,14 +24,10 @@
24
24
 
25
25
  require 'English'
26
26
  Gem::Specification.new do |s|
27
- s.specification_version = 2 if s.respond_to? :specification_version=
28
- if s.respond_to? :required_rubygems_version=
29
- s.required_rubygems_version = Gem::Requirement.new('>= 0')
30
- end
31
- s.rubygems_version = '2.3.3'
27
+ s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
32
28
  s.required_ruby_version = '>=2.3'
33
29
  s.name = 'loog'
34
- s.version = '0.3.0'
30
+ s.version = '0.4.0'
35
31
  s.license = 'MIT'
36
32
  s.summary = 'Object-oriented logging wrapper'
37
33
  s.description = 'Object-oriented wrapper for Ruby default logging facility'
@@ -39,13 +35,7 @@ Gem::Specification.new do |s|
39
35
  s.email = 'yegor256@gmail.com'
40
36
  s.homepage = 'http://github.com/yegor256/loog'
41
37
  s.files = `git ls-files`.split($RS)
42
- s.test_files = s.files.grep(%r{^(test)/})
43
38
  s.rdoc_options = ['--charset=UTF-8']
44
39
  s.extra_rdoc_files = ['README.md']
45
- s.add_development_dependency 'codecov', '0.6.0'
46
- s.add_development_dependency 'minitest', '5.11.3'
47
- s.add_development_dependency 'rake', '12.0.0'
48
- s.add_development_dependency 'rdoc', '4.3.0'
49
- s.add_development_dependency 'rubocop', '0.62.0'
50
- s.add_development_dependency 'rubocop-rspec', '1.31.0'
40
+ s.metadata['rubygems_mfa_required'] = 'true'
51
41
  end
data/test/test__helper.rb CHANGED
@@ -20,11 +20,7 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
- STDOUT.sync = true
23
+ $stdout.sync = true
24
24
 
25
25
  require 'simplecov'
26
26
  SimpleCov.start
27
- if ENV['CI'] == 'true'
28
- require 'codecov'
29
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
30
- end
data/test/test_loog.rb CHANGED
@@ -37,4 +37,10 @@ class LoogTest < Minitest::Test
37
37
  def test_null_logging
38
38
  Loog::NULL.info('Should not be visible')
39
39
  end
40
+
41
+ def test_buffering
42
+ b = Loog::Buffer.new
43
+ b.info('Hello, world!')
44
+ assert b.to_s.include?('Hello')
45
+ end
40
46
  end
metadata CHANGED
@@ -1,99 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-22 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: codecov
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '='
18
- - !ruby/object:Gem::Version
19
- version: 0.6.0
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '='
25
- - !ruby/object:Gem::Version
26
- version: 0.6.0
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '='
32
- - !ruby/object:Gem::Version
33
- version: 5.11.3
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '='
39
- - !ruby/object:Gem::Version
40
- version: 5.11.3
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 12.0.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 12.0.0
55
- - !ruby/object:Gem::Dependency
56
- name: rdoc
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
61
- version: 4.3.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '='
67
- - !ruby/object:Gem::Version
68
- version: 4.3.0
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 0.62.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 0.62.0
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 1.31.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 1.31.0
11
+ date: 2023-07-28 00:00:00.000000000 Z
12
+ dependencies: []
97
13
  description: Object-oriented wrapper for Ruby default logging facility
98
14
  email: yegor256@gmail.com
99
15
  executables: []
@@ -129,7 +45,8 @@ files:
129
45
  homepage: http://github.com/yegor256/loog
130
46
  licenses:
131
47
  - MIT
132
- metadata: {}
48
+ metadata:
49
+ rubygems_mfa_required: 'true'
133
50
  post_install_message:
134
51
  rdoc_options:
135
52
  - "--charset=UTF-8"
@@ -146,11 +63,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
63
  - !ruby/object:Gem::Version
147
64
  version: '0'
148
65
  requirements: []
149
- rubygems_version: 3.1.2
66
+ rubygems_version: 3.2.15
150
67
  signing_key:
151
- specification_version: 2
68
+ specification_version: 4
152
69
  summary: Object-oriented logging wrapper
153
- test_files:
154
- - test/test__helper.rb
155
- - test/test_loog.rb
156
- - test/test_tee.rb
70
+ test_files: []