juan_pelota 2.0.0 → 3.0.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
- SHA1:
3
- metadata.gz: 08793d7d86b7c9ecd2903164efd324092ec7043a
4
- data.tar.gz: 01349f44a110866d17344c06024e2b4ae2852f48
2
+ SHA256:
3
+ metadata.gz: 8d3ad11775f22c6779a0181bb3ebdac39f23b15fc1d929eddb704d39d4eac137
4
+ data.tar.gz: dffa44eda6417af4e0ac1c8ca2cf812d3491cb4a3ee9425f20487ee39e81721d
5
5
  SHA512:
6
- metadata.gz: cc0d4f888eedea77e2b3de4808b9abfde80fce8052cc5050b7761f6b284ef21c96f9a1651ed23facb98898962d115f667e22bcc8d6f5266d40a408b4ca6435df
7
- data.tar.gz: 0c5b8a5b5e9dee0ee2f70fde94e75e711a31fbfd1771edac39a1531c9c8452c8db33ff3fd43cdb2f75f0c1acd415177cacee2e6af6ff11a9725d0d17c780ca48
6
+ metadata.gz: 8e958cf459d7de7e468ff595b805364b3ea7444bad7c69e6c473665873e54632958bfff2bc70c9f6a0297ab2762fc84c192d8cf9cdc27e246a9c45aa4541a73c
7
+ data.tar.gz: b66950aac6dceefa71bd1cb0ee70812aa3fabd3ace60af47d6121dd3474758608ef8e4e48ba219c4b1368ee92709f01fa330861dbbf1de83379f8c94e42fb710
checksums.yaml.gz.sig ADDED
Binary file
data/LICENSE.txt ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010-2016 The Kompanee, Ltd
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/Rakefile CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'singleton'
2
4
 
3
5
  module JuanPelota
@@ -5,15 +7,15 @@ module JuanPelota
5
7
  if block_given?
6
8
  yield Configuration.instance
7
9
  else
8
- return Configuration.instance
10
+ Configuration.instance
9
11
  end
10
12
  end
11
13
 
12
14
  class Configuration
13
15
  include Singleton
14
16
 
15
- attr_accessor :filtered_arguments,
16
- :filtered_workers
17
+ attr_writer :filtered_arguments,
18
+ :filtered_workers
17
19
 
18
20
  def filtered_arguments
19
21
  @filtered_arguments || []
@@ -1,17 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sidekiq/logger'
1
4
  require 'juan_pelota/version'
2
5
  require 'juan_pelota'
3
6
  require 'json'
4
7
 
5
8
  module JuanPelota
6
- class Logger < Sidekiq::Logging::Pretty
9
+ class Logger < ::Sidekiq::Logger::Formatters::Base
7
10
  IGNORABLE_STATUSES = %w{start done queueing}.freeze
8
11
 
9
12
  attr_accessor :severity,
10
13
  :timestamp,
11
- :program_name,
12
- :raw_message
14
+ :program_name
15
+ attr_writer :raw_message
13
16
 
14
- def call(severity, time, program_name, incoming_message)
17
+ def call(severity, time, program_name, incoming_message) # rubocop:disable Metrics/AbcSize
15
18
  self.severity = severity
16
19
  self.timestamp = time.utc.iso8601
17
20
  self.program_name = program_name
@@ -20,7 +23,7 @@ class Logger < Sidekiq::Logging::Pretty
20
23
  return if config.filtered_workers.include?(worker_name.to_s) &&
21
24
  IGNORABLE_STATUSES.include?(status)
22
25
 
23
- {
26
+ { # rubocop:disable Style/StringConcatenation
24
27
  '@type' => 'sidekiq',
25
28
  '@timestamp' => timestamp,
26
29
  '@status' => status,
@@ -30,7 +33,7 @@ class Logger < Sidekiq::Logging::Pretty
30
33
  '@fields' => {
31
34
  pid: self.class.pid,
32
35
  tid: self.class.tid,
33
- context: context,
36
+ context: ctx,
34
37
  program_name: program_name,
35
38
  worker: worker_name,
36
39
  arguments: arguments,
@@ -38,26 +41,36 @@ class Logger < Sidekiq::Logging::Pretty
38
41
  }.to_json + "\n"
39
42
  end
40
43
 
44
+ def self.pid
45
+ ::Process.pid
46
+ end
47
+
48
+ def self.tid
49
+ ::Thread.current.object_id.to_s(36)
50
+ end
51
+
41
52
  private
42
53
 
43
- def raw_message
54
+ def raw_message # rubocop:disable Metrics/CyclomaticComplexity
44
55
  if @raw_message.is_a? Hash
45
56
  @raw_message
46
57
  elsif @raw_message.respond_to?(:match) &&
47
58
  @raw_message.match(/^queueing/)
59
+
48
60
  {
49
61
  'status' => 'queueing',
50
62
  'message' => @raw_message,
51
- 'class' => @raw_message.split(' ')[1],
63
+ 'class' => @raw_message.split[1],
52
64
  }
53
65
  elsif @raw_message.respond_to?(:match) &&
54
66
  @raw_message.match(/:\d+:in\s`/)
67
+
55
68
  {
56
- 'message' => @raw_message.lines.first(10).map(&:chomp)
69
+ 'message' => @raw_message.lines.first(10).map!(&:chomp),
57
70
  }
58
71
  else
59
72
  {
60
- 'message' => @raw_message
73
+ 'message' => @raw_message,
61
74
  }
62
75
  end
63
76
  end
@@ -90,14 +103,6 @@ class Logger < Sidekiq::Logging::Pretty
90
103
  raw_message['class']
91
104
  end
92
105
 
93
- def self.pid
94
- ::Process.pid
95
- end
96
-
97
- def self.tid
98
- ::Thread.current.object_id.to_s(36)
99
- end
100
-
101
106
  def config
102
107
  Configuration.instance
103
108
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JuanPelota
2
4
  module Middlewares
3
5
  class Logging
4
- # rubocop:disable Lint/RescueException, Metrics/AbcSize, Metrics/MethodLength
6
+ # rubocop:disable Lint/RescueException, Metrics/AbcSize
5
7
  def call(worker, job, _queue)
6
8
  start = Time.now
7
9
 
@@ -28,11 +30,11 @@ class Logging
28
30
  'args' => filtered_arguments(job['args'].try(:first)),
29
31
  )
30
32
  end
31
- rescue Exception => e
33
+ rescue Exception => error
32
34
  message = {
33
- 'error_class' => e.class.name,
34
- 'error_message' => e.message,
35
- 'error_backtrace' => e.backtrace.first(10),
35
+ 'error_class' => error.class.name,
36
+ 'error_message' => error.message,
37
+ 'error_backtrace' => error.backtrace.first(10),
36
38
  }
37
39
 
38
40
  logger.info(
@@ -45,27 +47,26 @@ class Logging
45
47
  'args' => filtered_arguments(job['args'].try(:first)),
46
48
  )
47
49
 
48
- raise e
50
+ raise error
49
51
  end
50
- # rubocop:enable Lint/RescueException, Metrics/AbcSize, Metrics/MethodLength
52
+ # rubocop:enable Lint/RescueException, Metrics/AbcSize
51
53
 
52
54
  def elapsed(start)
53
- (Time.now - start).to_f.round(3)
55
+ Float((Time.now - start)).round(3)
54
56
  end
55
57
 
56
58
  def logger
57
- Sidekiq.logger
59
+ ::Sidekiq.logger
58
60
  end
59
61
 
60
62
  def filtered_arguments(args)
61
63
  return if args.nil?
62
64
 
63
- @filtered_arguments ||=
64
- args.each_with_object({}) do |(key, value), filtered_hash|
65
- value = filtered_arguments(value) if value.is_a? Hash
65
+ @filtered_arguments ||= args.each_with_object({}) do |(key, value), filtered_hash|
66
+ value = filtered_arguments(value) if value.is_a? Hash
66
67
 
67
- filtered_hash[key] = value unless config.filtered_arguments.include? key
68
- end
68
+ filtered_hash[key] = value unless config.filtered_arguments.include? key
69
+ end
69
70
  end
70
71
 
71
72
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JuanPelota
2
- VERSION = '2.0.0'.freeze
4
+ VERSION = '3.0.0'
3
5
  end
data/lib/juan_pelota.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'juan_pelota/middlewares/logging'
2
4
  require 'juan_pelota/logger'
3
5
  require 'juan_pelota/configuration'
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: juan_pelota
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thekompanee
8
- - goodscout
9
8
  autorequire:
10
9
  bindir: bin
11
- cert_chain: []
12
- date: 2015-12-17 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIErjCCAxagAwIBAgIBATANBgkqhkiG9w0BAQsFADBOMRowGAYDVQQDDBFhY2Nv
14
+ dW50c19ydWJ5Z2VtczEbMBkGCgmSJomT8ixkARkWC3RoZWtvbXBhbmVlMRMwEQYK
15
+ CZImiZPyLGQBGRYDY29tMB4XDTIyMDMwNDE5NTc0NloXDTIzMDMwNDE5NTc0Nlow
16
+ TjEaMBgGA1UEAwwRYWNjb3VudHNfcnVieWdlbXMxGzAZBgoJkiaJk/IsZAEZFgt0
17
+ aGVrb21wYW5lZTETMBEGCgmSJomT8ixkARkWA2NvbTCCAaIwDQYJKoZIhvcNAQEB
18
+ BQADggGPADCCAYoCggGBAPRnzg/G0TSKJYIxNBueK3oPjDnkYYFBmeGlZQInALRK
19
+ lD+OdPQWyZqDygAh0NyUu8sL2POpICaQ66OWmQkxvk1puCSEoXAeLpxVb+DP9xWc
20
+ hIC/wtBMgzlzXDKHBf9iFUVo1g3MyLMH/+Rk55ee/rHS2pX01ju6sdxPqYLDIt40
21
+ kiB/jiLVS36Yq1fETJc1t9ZAtVj3ltWhWDcY4KTJx6tk3g6HfNIkzWz5xlEEWWDs
22
+ ZHUATdeqzqRGETvKny596CELdtvGCdCuSTxbwWSSXT/7YkAQ2l0Tg5R6kLp0XMOU
23
+ tndS9KTtUd80FEpK47XmSk+jYbnk3QcvLxptTNu7lyqOFJsiT2HMPoCZ0YJPgOqW
24
+ x0cjmA6sY/QE7pXEalG5ERMqhnh6k8KxcLZcDCTdMleS66piSB1y/xlHis9bYKI+
25
+ 9GqAbVhXBaNKsjLkO392Uy/F0gyJOPrK0BA/WR90o8VaslMgDa2ymX940H4uJixV
26
+ 2Px3RRT8pNjLuOooyk4TVQIDAQABo4GWMIGTMAkGA1UdEwQCMAAwCwYDVR0PBAQD
27
+ AgSwMB0GA1UdDgQWBBTv5dC43TjZ9ka/MuFhsjAN+zFlXzAsBgNVHREEJTAjgSFh
28
+ Y2NvdW50cytydWJ5Z2Vtc0B0aGVrb21wYW5lZS5jb20wLAYDVR0SBCUwI4EhYWNj
29
+ b3VudHMrcnVieWdlbXNAdGhla29tcGFuZWUuY29tMA0GCSqGSIb3DQEBCwUAA4IB
30
+ gQA77FB5l21dFSHGwXCHHcvxoNuYl+EC7vgRxBs4jE6Fgn3V5r/eBtQ8XYJ2k2oQ
31
+ 27y98cEozAWH5wjnZTldEABOkhADgYk5gB/ixcs6D+2fM5J8RblrHyyhVydvFCcj
32
+ 5jhG5vYRMlIsTPtjUNueBvXxyyIjysZs5l6YareXJ8Tc9Bliq2ZYlohuMDaw6yqM
33
+ FrlB+BmbMxMn7agg0s9gh/dAfvZLjveUxeIGzNh8HRb1LJJBBGF9E9KXRhQEEVoN
34
+ 2Q1jYQMxADb6ruQiM9VYIVIfwTrOsF8t9IuoN+xCOUafDQ3Ix3i70BSdzm48toNl
35
+ 0xoB7J4x0kJYk4zrQ9VsLK7xadlR0MC4rfkjPucz41+zOEzoG0hZgoySbR/0K1vX
36
+ dqKIiQ90U6ghhzc0WhL3K7L50FKfHh1vCXBToYuQIpyWyZtvkTvvDE9vLHmVJH4U
37
+ wNduo7tKzoOUaVNBOaIdXeZ610yzBamfSN2xNtSord+Y3JTt/Uvn2UmG8QwHqnxq
38
+ W/M=
39
+ -----END CERTIFICATE-----
40
+ date: 2022-03-04 00:00:00.000000000 Z
13
41
  dependencies:
14
42
  - !ruby/object:Gem::Dependency
15
43
  name: sidekiq
@@ -17,14 +45,14 @@ dependencies:
17
45
  requirements:
18
46
  - - "~>"
19
47
  - !ruby/object:Gem::Version
20
- version: '4.0'
48
+ version: '6.0'
21
49
  type: :runtime
22
50
  prerelease: false
23
51
  version_requirements: !ruby/object:Gem::Requirement
24
52
  requirements:
25
53
  - - "~>"
26
54
  - !ruby/object:Gem::Version
27
- version: '4.0'
55
+ version: '6.0'
28
56
  - !ruby/object:Gem::Dependency
29
57
  name: rspec
30
58
  requirement: !ruby/object:Gem::Requirement
@@ -73,21 +101,22 @@ dependencies:
73
101
  requirements:
74
102
  - - "~>"
75
103
  - !ruby/object:Gem::Version
76
- version: 0.7.1
104
+ version: 0.9.4
77
105
  type: :development
78
106
  prerelease: false
79
107
  version_requirements: !ruby/object:Gem::Requirement
80
108
  requirements:
81
109
  - - "~>"
82
110
  - !ruby/object:Gem::Version
83
- version: 0.7.1
111
+ version: 0.9.4
84
112
  description: ''
85
- email: scoutsquad@goodscout.io
113
+ email:
114
+ - info@thekompanee.com
86
115
  executables: []
87
116
  extensions: []
88
117
  extra_rdoc_files: []
89
118
  files:
90
- - LICENSE
119
+ - LICENSE.txt
91
120
  - README.md
92
121
  - Rakefile
93
122
  - lib/juan_pelota.rb
@@ -95,12 +124,11 @@ files:
95
124
  - lib/juan_pelota/logger.rb
96
125
  - lib/juan_pelota/middlewares/logging.rb
97
126
  - lib/juan_pelota/version.rb
98
- - spec/juan_pelota/logger_spec.rb
99
- - spec/spec_helper.rb
100
- homepage: https://github.com/goodscout/juan_pelota
127
+ homepage: https://github.com/thekompanee/juan_pelota
101
128
  licenses:
102
129
  - MIT
103
- metadata: {}
130
+ metadata:
131
+ allowed_push_host: https://rubygems.org
104
132
  post_install_message:
105
133
  rdoc_options: []
106
134
  require_paths:
@@ -116,12 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
144
  - !ruby/object:Gem::Version
117
145
  version: '0'
118
146
  requirements: []
119
- rubyforge_project:
120
- rubygems_version: 2.4.5.1
147
+ rubygems_version: 3.1.6
121
148
  signing_key:
122
149
  specification_version: 4
123
150
  summary: Log Sidekiq messages in JSON format
124
- test_files:
125
- - spec/juan_pelota/logger_spec.rb
126
- - spec/spec_helper.rb
127
- has_rdoc:
151
+ test_files: []
metadata.gz.sig ADDED
Binary file
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2013 Jeff Felchner
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,157 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module JuanPelota
4
- describe Logger do
5
-
6
- before(:each) do
7
- Configuration.instance.filtered_workers = 'my_filtered_worker'
8
- end
9
-
10
- it 'takes message as a hash and logs what we want', :time_mock do
11
- json = JuanPelota::Logger.new.call('high',
12
- Time.now.utc,
13
- 'our tests',
14
- 'args' => 'my_args',
15
- 'class' => 'my_worker',
16
- 'run_time' => 100,
17
- 'message' => 'my message',
18
- 'status' => 'my_status')
19
-
20
- json_data = JSON.parse(json)
21
-
22
- expect(json_data).to include(
23
- '@type' => 'sidekiq',
24
- '@timestamp' => '2012-07-26T18:00:00Z',
25
- '@status' => 'my_status',
26
- '@severity' => 'high',
27
- '@run_time' => 100,
28
- '@message' => 'my message',
29
- '@fields' => include(
30
- 'pid' => be_a(Integer),
31
- 'tid' => match(/[a-z0-9]+/),
32
- 'context' => nil,
33
- 'program_name' => 'our tests',
34
- 'worker' => 'my_worker',
35
- 'arguments' => 'my_args',
36
- ),
37
- )
38
- end
39
-
40
- it 'take message as a string and picks up if its a worker that is being queued',
41
- :time_mock do
42
-
43
- json = JuanPelota::Logger.new.call('high',
44
- Time.now.utc,
45
- 'our tests',
46
- 'queueing MyWorkerClass')
47
-
48
- json_data = JSON.parse(json)
49
-
50
- expect(json_data).to include(
51
- '@status' => 'queueing',
52
- '@message' => 'queueing MyWorkerClass',
53
- '@fields' => include(
54
- 'worker' => 'MyWorkerClass',
55
- ),
56
- )
57
- end
58
-
59
- # rubocop:disable Metrics/LineLength
60
- it 'take message as a string and can detect if its a backtrace',
61
- :time_mock do
62
-
63
- backtrace = <<-HEREDOC
64
- /Users/hhd418/Projects/goodscout/good_products/app/workers/good_products/workers/process_item.rb:50:in `perform'
65
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:75:in `execute_job'
66
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:52:in `block (2 levels) in process'
67
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:127:in `block in invoke'
68
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:11:in `block in call'
69
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:62:in `instrument'
70
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:18:in `instrument'
71
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:10:in `call'
72
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
73
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-unique-jobs-3.0.14/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb:16:in `call'
74
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
75
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
76
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
77
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call'
78
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
79
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-failures-0.4.4/lib/sidekiq/failures/middleware.rb:9:in `call'
80
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
81
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
82
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-skylight-0.0.4/lib/sidekiq/skylight/server_middleware.rb:8:in `block in call'
83
- /usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/skylight-0.6.0/lib/skylight/core.rb:70:in `trace'
84
- HEREDOC
85
-
86
- json = JuanPelota::Logger.new.call('high',
87
- Time.now.utc,
88
- 'our tests',
89
- backtrace)
90
-
91
- json_data = JSON.parse(json)
92
-
93
- expect(json_data).to include(
94
- '@status' => 'dead',
95
- '@message' => [
96
- "/Users/hhd418/Projects/goodscout/good_products/app/workers/good_products/workers/process_item.rb:50:in `perform'",
97
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:75:in `execute_job'",
98
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:52:in `block (2 levels) in process'",
99
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:127:in `block in invoke'",
100
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:11:in `block in call'",
101
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:62:in `instrument'",
102
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:18:in `instrument'",
103
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:10:in `call'",
104
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'",
105
- "/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-unique-jobs-3.0.14/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb:16:in `call'",
106
- ],
107
- )
108
- end
109
- # rubocop:enable Metrics/LineLength
110
-
111
- it 'set the status to dead and returns a nil worker if it gets a string without ' \
112
- '"queueing" in the message',
113
- :time_mock do
114
-
115
- json = JuanPelota::Logger.new.call('high',
116
- Time.now.utc,
117
- 'our tests',
118
- 'My Message')
119
-
120
- json_data = JSON.parse(json)
121
-
122
- expect(json_data).to include(
123
- '@status' => 'dead',
124
- '@message' => 'My Message',
125
- '@fields' => include(
126
- 'worker' => nil,
127
- ),
128
- )
129
- end
130
-
131
- it 'set the status to "Exception" if the message is one', :time_mock do
132
- json = JuanPelota::Logger.new.call('high',
133
- Time.now.utc,
134
- 'our tests',
135
- Exception.new)
136
-
137
- json_data = JSON.parse(json)
138
-
139
- expect(json_data).to include(
140
- '@status' => 'exception',
141
- )
142
- end
143
-
144
- it 'sets the status to retry if retry is passed in as key to the message', :time_mock do
145
- json = JuanPelota::Logger.new.call('high',
146
- Time.now.utc,
147
- 'our tests',
148
- 'retry' => true)
149
-
150
- json_data = JSON.parse(json)
151
-
152
- expect(json_data).to include(
153
- '@status' => 'retry',
154
- )
155
- end
156
- end
157
- end
data/spec/spec_helper.rb DELETED
@@ -1,3 +0,0 @@
1
- require 'rspectacular'
2
- require 'sidekiq'
3
- require 'juan_pelota'