ci_logger 0.1.2 → 0.2.2

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
  SHA256:
3
- metadata.gz: 605bc984028fbff4ae84a12c2f55e4a7742be55dddcc99d684011cf225b2766f
4
- data.tar.gz: 1426b8eb26d29cb4a89abcb62720285424db5166799f4f7e32a4410d04bc70ae
3
+ metadata.gz: 575c03831991c807eadce1326d3b9101d7689f7b612b8d21e4c26172a6086456
4
+ data.tar.gz: f7cadc500bb29f733180abe3ec3fa7d00aab7de434704c97800b03fc13193ee2
5
5
  SHA512:
6
- metadata.gz: 2f3129e716cb91dd06f7dd6d9f2186e23853718a29f39073b2c7a23d0a7fc84873bc6cc3b2af619446bae46c0baf91873d5c154b871f1b9f2790adab1c83e6de
7
- data.tar.gz: 3d4a4c44801a0e033cd994bdef0a20c38b9a4d960ffee5d0a3e43e1128033a87dc419960dca8f45b19add2e570494fb3585f6dc2ea8d6e10b563f30a7ef637cd
6
+ metadata.gz: dfd5a532fc751468a82c30c4f8ad5eb15e8cc15cd36d61717077d2ec951738c6ec9b2763c50ae0f1f2e943c9b4442dcee1c093be05a2a226653e6b3c71b0aaf9
7
+ data.tar.gz: ca00f9a82881ef239eabce27e428fa3139b54665f65a01bfd01b7c9a8adea4d68f270a0e5397d7bc1a1d964e5634e41d17f97ab8974d9080be6708fe40671d9b
@@ -2,14 +2,41 @@ module CiLogger
2
2
  class Logger < ::Logger
3
3
  def initialize(original)
4
4
  @original = original
5
+ @original_level = @original.level
5
6
  @original.level = :debug
6
7
  self.level = :debug
7
8
  end
8
9
 
10
+ def sync
11
+ temporary_log.each do |l|
12
+ if @level <= l[:severity]
13
+ @original.add(l[:severity], l[:message], l[:progname])
14
+ end
15
+ end
16
+ temporary_log.clear
17
+ end
18
+
19
+ def sync_with_original_level
20
+ @original.level = @original_level
21
+ sync
22
+ ensure
23
+ @original.level = :debug
24
+ end
25
+
9
26
  def clear
10
27
  temporary_log.clear
11
28
  end
12
29
 
30
+ def formatter
31
+ @original.formatter
32
+ end
33
+
34
+ def formatter=(f)
35
+ @original.formatter = f
36
+ end
37
+
38
+ private
39
+
13
40
  def temporary_log
14
41
  @temporary_log ||= []
15
42
  end
@@ -18,13 +45,12 @@ module CiLogger
18
45
  temporary_log << { severity: severity, message: message, progname: progname }
19
46
  end
20
47
 
21
- def sync
22
- temporary_log.each do |l|
23
- if @level <= l[:severity]
24
- @original.add(l[:severity], l[:message], l[:progname])
25
- end
26
- end
27
- temporary_log.clear
48
+ def method_missing(symbol, *args, &block)
49
+ @original.send(symbol, *args, &block)
50
+ end
51
+
52
+ def respond_to_missing?(symbol, include_all)
53
+ @original.respond_to?(symbol, include_all)
28
54
  end
29
55
  end
30
56
  end
@@ -8,8 +8,8 @@ module CiLogger
8
8
  Rails.logger = CiLogger::Logger.new(Rails.logger)
9
9
 
10
10
  RSpec.configure do |config|
11
- config.add_formatter 'progress'
12
- config.add_formatter ::CiLogger::Formatter
11
+ config.add_formatter 'progress' if config.formatters.empty?
12
+ config.add_formatter ::CiLogger::RspecFormatter
13
13
  config.before do |example|
14
14
  Rails.logger.debug("start example at #{example.location}")
15
15
  end
@@ -0,0 +1,37 @@
1
+ require "rspec/core"
2
+
3
+ module CiLogger
4
+ class RspecFormatter
5
+ RSpec::Core::Formatters.register self, :example_passed, :example_pending, :example_failed
6
+
7
+ def initialize(_out)
8
+ @out = _out
9
+ end
10
+
11
+ def example_failed(notification)
12
+ if Rails.application.config.ci_logger.enabled
13
+ example = notification.example
14
+ Rails.logger.debug("finish example at #{example.location}")
15
+ Rails.logger.sync
16
+ else
17
+ Rails.logger.sync_with_original_level
18
+ end
19
+ end
20
+
21
+ def example_passed(_notification)
22
+ if Rails.application.config.ci_logger.enabled
23
+ Rails.logger.clear
24
+ else
25
+ Rails.logger.sync_with_original_level
26
+ end
27
+ end
28
+
29
+ def example_pending(_notification)
30
+ if Rails.application.config.ci_logger.enabled
31
+ Rails.logger.clear
32
+ else
33
+ Rails.logger.sync_with_original_level
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,3 @@
1
1
  module CiLogger
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.2'
3
3
  end
data/lib/ci_logger.rb CHANGED
@@ -1,36 +1,7 @@
1
1
  require "ci_logger/version"
2
2
  require "ci_logger/railtie"
3
3
  require "ci_logger/logger"
4
+ require "ci_logger/rspec_formatter"
4
5
 
5
6
  module CiLogger
6
- begin
7
- require "rspec/core"
8
-
9
- class Formatter
10
- RSpec::Core::Formatters.register self, :example_passed, :example_pending, :example_failed
11
-
12
- def initialize(_out)
13
- @out = _out
14
- end
15
-
16
- def example_failed(notification)
17
- if Rails.application.config.ci_logger.enabled
18
- example = notification.example
19
- Rails.logger.debug("finish example at #{example.location}")
20
- Rails.logger.sync
21
- else
22
- Rails.logger.clear
23
- end
24
- end
25
-
26
- def example_passed(_notification)
27
- Rails.logger.clear
28
- end
29
-
30
- def example_pending(_notification)
31
- Rails.logger.clear
32
- end
33
- end
34
- rescue LoadError
35
- end
36
7
  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.1.2
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - willnet
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-24 00:00:00.000000000 Z
11
+ date: 2021-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -65,6 +65,7 @@ files:
65
65
  - lib/ci_logger.rb
66
66
  - lib/ci_logger/logger.rb
67
67
  - lib/ci_logger/railtie.rb
68
+ - lib/ci_logger/rspec_formatter.rb
68
69
  - lib/ci_logger/version.rb
69
70
  - lib/tasks/ci_logger_tasks.rake
70
71
  homepage: https://github.com/willnet/ci_logger
@@ -74,7 +75,7 @@ metadata:
74
75
  homepage_uri: https://github.com/willnet/ci_logger
75
76
  source_code_uri: https://github.com/willnet/ci_logger
76
77
  changelog_uri: https://github.com/willnet/ci_logger
77
- post_install_message:
78
+ post_install_message:
78
79
  rdoc_options: []
79
80
  require_paths:
80
81
  - lib
@@ -90,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
91
  version: '0'
91
92
  requirements: []
92
93
  rubygems_version: 3.2.22
93
- signing_key:
94
+ signing_key:
94
95
  specification_version: 4
95
96
  summary: Faster logger for CI
96
97
  test_files: []