ci_logger 0.6.0 → 0.8.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 +4 -4
- data/README.md +9 -0
- data/lib/ci_logger/logger.rb +39 -32
- data/lib/ci_logger/minitest/integration.rb +4 -4
- data/lib/ci_logger/railtie.rb +1 -1
- data/lib/ci_logger/registry.rb +22 -0
- data/lib/ci_logger/rspec/integration.rb +7 -7
- data/lib/ci_logger/version.rb +1 -1
- data/lib/ci_logger.rb +13 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3ef69b1f08389623edc46eadeecb5caab6cd9cc5cf993b6eddf8f964c3b8908
|
4
|
+
data.tar.gz: 5aa92e9108400d33f65c075996498030cd69922ec8d9e568ae8b2cb888954d54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b792b58199a032f4cf4e1404f40e5625e5f34b7064b5a32e57299a4a6e285cd6116fce0d84b8a0439a2800052d5f0a931e682c4799e83771bd79ca383a3738a0
|
7
|
+
data.tar.gz: e5215e8fa3f9c60928f8526858f0ad2f8f462954a9b39377193aec190cf60ee241ef157560f090be7e7c670d67cfac6dfde4f94e10f26de5d4bd042b5bb182fa
|
data/README.md
CHANGED
@@ -35,6 +35,15 @@ config.ci_logger.enabled = ENV['CI']
|
|
35
35
|
|
36
36
|
You can replace `ENV['CI']` with what you like.
|
37
37
|
|
38
|
+
## Replace loggers besides rails logger
|
39
|
+
|
40
|
+
CiLogger replaces Rails.logger by default, but other loggers can be replaced.
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
your_logger = CiLogger.new(your_logger)
|
44
|
+
your_logger.debug('debug!') # This is only output when the test fails
|
45
|
+
```
|
46
|
+
|
38
47
|
## Contributing
|
39
48
|
Contribution directions go here.
|
40
49
|
|
data/lib/ci_logger/logger.rb
CHANGED
@@ -1,46 +1,23 @@
|
|
1
|
+
require "ci_logger/registry"
|
2
|
+
|
1
3
|
module CiLogger
|
2
|
-
class Logger
|
4
|
+
class Logger
|
3
5
|
def initialize(original)
|
4
6
|
@original = original
|
5
|
-
|
6
|
-
@original.level = :debug
|
7
|
-
self.level = :debug
|
7
|
+
Registry.register(self)
|
8
8
|
end
|
9
9
|
|
10
10
|
def sync
|
11
11
|
temporary_log.each do |l|
|
12
|
-
|
13
|
-
@original.add(l[:severity], l[:message], l[:progname])
|
14
|
-
end
|
12
|
+
@original.add(l[:severity], l[:message], l[:progname])
|
15
13
|
end
|
16
14
|
temporary_log.clear
|
17
15
|
end
|
18
16
|
|
19
|
-
def sync_with_original_level
|
20
|
-
@original.level = @original_level
|
21
|
-
sync
|
22
|
-
ensure
|
23
|
-
@original.level = :debug
|
24
|
-
end
|
25
|
-
|
26
17
|
def clear
|
27
18
|
temporary_log.clear
|
28
19
|
end
|
29
20
|
|
30
|
-
def formatter
|
31
|
-
@original.formatter
|
32
|
-
end
|
33
|
-
|
34
|
-
def formatter=(f)
|
35
|
-
@original.formatter = f
|
36
|
-
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def temporary_log
|
41
|
-
@temporary_log ||= []
|
42
|
-
end
|
43
|
-
|
44
21
|
def add(severity, message = nil, progname = nil)
|
45
22
|
if progname.nil?
|
46
23
|
progname = @progname
|
@@ -56,12 +33,42 @@ module CiLogger
|
|
56
33
|
temporary_log << { severity: severity, message: message, progname: progname }
|
57
34
|
end
|
58
35
|
|
59
|
-
def
|
60
|
-
|
36
|
+
def debug(progname = nil, &block)
|
37
|
+
add(::Logger::DEBUG, nil, progname, &block)
|
38
|
+
end
|
39
|
+
|
40
|
+
def info(progname = nil, &block)
|
41
|
+
add(::Logger::INFO, nil, progname, &block)
|
42
|
+
end
|
43
|
+
|
44
|
+
def warn(progname = nil, &block)
|
45
|
+
add(::Logger::WARN, nil, progname, &block)
|
46
|
+
end
|
47
|
+
|
48
|
+
def error(progname = nil, &block)
|
49
|
+
add(::Logger::ERROR, nil, progname, &block)
|
50
|
+
end
|
51
|
+
|
52
|
+
def fatal(progname = nil, &block)
|
53
|
+
add(::Logger::FATAL, nil, progname, &block)
|
54
|
+
end
|
55
|
+
|
56
|
+
def unknown(progname = nil, &block)
|
57
|
+
add(::Logger::UNKNOWN, nil, progname, &block)
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def temporary_log
|
63
|
+
@temporary_log ||= []
|
64
|
+
end
|
65
|
+
|
66
|
+
def method_missing(...)
|
67
|
+
@original.send(...)
|
61
68
|
end
|
62
69
|
|
63
|
-
def respond_to_missing?(
|
64
|
-
@original.respond_to?(
|
70
|
+
def respond_to_missing?(...)
|
71
|
+
@original.respond_to?(...)
|
65
72
|
end
|
66
73
|
end
|
67
74
|
end
|
@@ -3,12 +3,12 @@ module CiLogger
|
|
3
3
|
module Integration
|
4
4
|
def before_teardown
|
5
5
|
super
|
6
|
-
if
|
7
|
-
|
6
|
+
if CiLogger.disabled?
|
7
|
+
Registry.sync
|
8
8
|
elsif passed? || skipped?
|
9
|
-
|
9
|
+
Registry.clear
|
10
10
|
else
|
11
|
-
|
11
|
+
Registry.sync
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
data/lib/ci_logger/railtie.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
module CiLogger
|
2
|
+
module Registry
|
3
|
+
class << self
|
4
|
+
def register(logger)
|
5
|
+
@loggers ||= []
|
6
|
+
@loggers << logger
|
7
|
+
end
|
8
|
+
|
9
|
+
def sync
|
10
|
+
@loggers.each(&:sync)
|
11
|
+
end
|
12
|
+
|
13
|
+
def clear
|
14
|
+
@loggers.each(&:clear)
|
15
|
+
end
|
16
|
+
|
17
|
+
def debug(...)
|
18
|
+
@loggers.each { _1.debug(...) }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -4,19 +4,19 @@ RSpec.configure do |config|
|
|
4
4
|
config.include CiLogger::Rspec::ExampleGroupMethods
|
5
5
|
|
6
6
|
config.prepend_before do |example|
|
7
|
-
next
|
7
|
+
next if CiLogger.disabled?
|
8
8
|
|
9
|
-
|
9
|
+
CiLogger::Registry.debug("start example at #{example.location}")
|
10
10
|
end
|
11
11
|
|
12
12
|
config.append_after do |example|
|
13
|
-
if
|
14
|
-
|
13
|
+
if CiLogger.disabled?
|
14
|
+
CiLogger::Registry.sync
|
15
15
|
elsif passed?
|
16
|
-
|
16
|
+
CiLogger::Registry.clear
|
17
17
|
else
|
18
|
-
|
19
|
-
|
18
|
+
CiLogger::Registry.debug("finish example at #{example.location}")
|
19
|
+
CiLogger::Registry.sync
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/lib/ci_logger/version.rb
CHANGED
data/lib/ci_logger.rb
CHANGED
@@ -3,4 +3,17 @@ require "ci_logger/railtie"
|
|
3
3
|
require "ci_logger/logger"
|
4
4
|
|
5
5
|
module CiLogger
|
6
|
+
class << self
|
7
|
+
def new(original)
|
8
|
+
Logger.new(original)
|
9
|
+
end
|
10
|
+
|
11
|
+
def enabled?
|
12
|
+
Rails.application.config.ci_logger.enabled
|
13
|
+
end
|
14
|
+
|
15
|
+
def disabled?
|
16
|
+
!enabled?
|
17
|
+
end
|
18
|
+
end
|
6
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ci_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- willnet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- lib/ci_logger/logger.rb
|
53
53
|
- lib/ci_logger/minitest/integration.rb
|
54
54
|
- lib/ci_logger/railtie.rb
|
55
|
+
- lib/ci_logger/registry.rb
|
55
56
|
- lib/ci_logger/rspec/example_group_methods.rb
|
56
57
|
- lib/ci_logger/rspec/integration.rb
|
57
58
|
- lib/ci_logger/version.rb
|