ci_logger 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
  SHA256:
3
- metadata.gz: 538ace771f2629083532ba2244746bbe9d220a32a64206838c9bd2d109a19e47
4
- data.tar.gz: 41aa5dd969995fc1517976f96134454cf75b6a1974ae7c559ff9ac5ec618f695
3
+ metadata.gz: 89e72539f48e1d431cf0aea68bc94bc68f634ff387ab7f403e3a32b0dc8e5968
4
+ data.tar.gz: f702a6a73bdaacad98c3c145fe143479d7e5f2ba0eb30fddea8ba418c6007cec
5
5
  SHA512:
6
- metadata.gz: faf111268f5891b1a331bf13f727328eda72985530ceb084067eb1609109984f98ad9cbe5bf3be2beaebd57909973167a5598eb36d8135f4ce779c33a5ff9f5f
7
- data.tar.gz: 893264e2711fe6e9839a7cda80062f17e08a44be9fd6b23f14f090621fc30da6fe6aaa61bd0bacca5a7bf7d503fa31317b84d252800cc9a8011c088bfb3b9244
6
+ metadata.gz: 35e497db83054eb3fe825ab4ff04046e9fa1e9bb0960b7a4222975eb6896f8368397d352808d7bea4c6d3636016b71eeaec9327ae2fbd18d849905fd9a4d0fba
7
+ data.tar.gz: aec951a589e55cd68c65a5eeda83a5fe82f891c93df407017ae2bf487c82b8cb03beb545bf8c72231fdeba886a8805522104109ca03e025de36d5e254819e399
data/README.md CHANGED
@@ -4,7 +4,7 @@ Faster Logger for CI
4
4
 
5
5
  ## prerequisite
6
6
 
7
- - rspec-rails
7
+ - rspec
8
8
  - rails(>= 5.2)
9
9
 
10
10
  If you want minitest integration, send Pull Request!
@@ -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
@@ -9,7 +9,7 @@ module CiLogger
9
9
 
10
10
  RSpec.configure do |config|
11
11
  config.add_formatter 'progress'
12
- config.add_formatter ::CiLogger::Formatter
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.1'
2
+ VERSION = '0.2.1'
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/rails"
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.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - willnet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-24 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 5.2.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec-rails
28
+ name: rspec-core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Faster logger for CI
42
56
  email:
43
57
  - netwillnet@gmail.com
@@ -51,6 +65,7 @@ files:
51
65
  - lib/ci_logger.rb
52
66
  - lib/ci_logger/logger.rb
53
67
  - lib/ci_logger/railtie.rb
68
+ - lib/ci_logger/rspec_formatter.rb
54
69
  - lib/ci_logger/version.rb
55
70
  - lib/tasks/ci_logger_tasks.rake
56
71
  homepage: https://github.com/willnet/ci_logger