sidekiq-logstash 1.1.0 → 1.2.0

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: e43af9847d8aa844b63c75c1591ac5bcce3bccd0220817fb9bbeee301c9b1a79
4
- data.tar.gz: fb791ea1bc7a757291ed87e350bd0e34a3be938a75513186a056af1449bde222
3
+ metadata.gz: 808f360cfd63cff59fc4bd8a80635a2dc8968dd0fdda23c29b6f67091f940a88
4
+ data.tar.gz: c01964667f42fc39b3e16e3a4d387e9ba5409b03b31dd568ba4b9d3c59e3605b
5
5
  SHA512:
6
- metadata.gz: b0859c6a626427a51435d34751902f77c18b5a9218e91cf2281c16f0862636aab4bb1eafda088a6cf48fdb4b290c19a6ebc7ff3f1343fb0ec3e3eb1074c36c96
7
- data.tar.gz: e4d37cb78bbfc02de89be0ebecadea82d02d8cca8d0f04e101826b34854933025fc955f7ce63b921a4fa8522bcc8794200423bca564454afa97381ffdff0011b
6
+ metadata.gz: 256a245e0b055e617a5dc715dad09d2f02c82aeb817465cfed9fb5a5556dc9a2f56e43a454ab54e28fcf179d1d2886099dd55a0c0238985b86bb3a4c24622162
7
+ data.tar.gz: f9dd368e75160a3422b9068a195f187241a71cb683d3bedb272c0dbfc7e7d16e11e3938f29b9fa1e139ba86ac7e043dc2421c76ac722028271222d31a7889d52
@@ -0,0 +1,22 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - rubocop-performance
5
+
6
+ AllCops:
7
+ DisplayCopNames: true
8
+ DisplayStyleGuide: true
9
+ TargetRubyVersion: 2.3
10
+
11
+ Metrics/BlockLength:
12
+ Exclude:
13
+ - spec/**/*.rb
14
+
15
+ Metrics/LineLength:
16
+ Max: 120
17
+ Exclude:
18
+ - spec/**/*.rb
19
+
20
+ Style/Documentation:
21
+ Exclude:
22
+ - 'spec/**/*'
@@ -0,0 +1,41 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2019-04-20 13:23:53 +0200 using RuboCop version 0.67.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ Lint/DuplicateMethods:
11
+ Exclude:
12
+ - 'lib/sidekiq/logstash/configuration.rb'
13
+
14
+ # Offense count: 4
15
+ Metrics/AbcSize:
16
+ Max: 31
17
+
18
+ # Offense count: 1
19
+ Metrics/CyclomaticComplexity:
20
+ Max: 13
21
+
22
+ # Offense count: 6
23
+ # Configuration parameters: CountComments, ExcludedMethods.
24
+ Metrics/MethodLength:
25
+ Max: 28
26
+
27
+ # Offense count: 1
28
+ Metrics/PerceivedComplexity:
29
+ Max: 14
30
+
31
+ # Offense count: 7
32
+ Style/Documentation:
33
+ Exclude:
34
+ - 'spec/**/*'
35
+ - 'lib/sidekiq/logging/argument_filter.rb'
36
+ - 'lib/sidekiq/logging/logstash_formatter.rb'
37
+ - 'lib/sidekiq/logging/shared.rb'
38
+ - 'lib/sidekiq/logstash.rb'
39
+ - 'lib/sidekiq/logstash/configuration.rb'
40
+ - 'lib/sidekiq/logstash_job_logger.rb'
41
+ - 'lib/sidekiq/middleware/server/logstash_logging.rb'
@@ -1,9 +1,13 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
3
- - 2.2.2
4
- - 2.3.0
5
- - 2.4.0
6
- before_install: gem install bundler -v 1.11.2
4
+ - 2.3
5
+ - 2.4
6
+ - 2.5
7
+ - 2.6
8
+ before_install:
9
+ - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
10
+ - gem install bundler -v '~> 1.17'
7
11
  gemfile:
8
12
  - gemfiles/sidekiq3.gemfile
9
13
  - gemfiles/sidekiq4.gemfile
@@ -16,5 +20,5 @@ deploy:
16
20
  on:
17
21
  tags: true
18
22
  repo: iMacTia/sidekiq-logstash
19
- rvm: 2.4.0
23
+ rvm: 2.6
20
24
 
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in sidekiq-logstash.gemspec
data/README.md CHANGED
@@ -68,6 +68,11 @@ Sidekiq::Logstash.configure do |config|
68
68
  # it works just like rails params filtering (http://guides.rubyonrails.org/action_controller_overview.html#parameters-filtering)
69
69
  config.filter_args << 'foo'
70
70
 
71
+ # by default, the "job started" logs are omitted from the logs
72
+ # to have one-line logs for each log (following Lograge), but you can
73
+ # enable job start logs by setting the following flag:
74
+ config.job_start_log = true
75
+
71
76
  # custom_option is a Proc that will be called before logging the payload, allowing you to add fields to it
72
77
  config.custom_options = lambda do |payload|
73
78
  payload['my_custom_field'] = 'my_custom_value'
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'sidekiq/logstash'
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'sidekiq/logstash'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gem 'sidekiq', '~> 3.0'
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gem 'sidekiq', '~> 4.0'
4
6
 
5
- gemspec path: '../'
7
+ gemspec path: '../'
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gem 'sidekiq', '~> 5.0'
4
6
 
5
- gemspec path: '../'
7
+ gemspec path: '../'
@@ -1,15 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This implementation is taken directly from https://github.com/rails/rails/blob/52ce6ece8c8f74064bb64e0a0b1ddd83092718e1/actionpack/lib/action_dispatch/http/parameter_filter.rb
2
4
  # Adding actionpack to the gem dependencies would have been too heavy, so here is just what we need.
3
-
4
5
  module Sidekiq
5
6
  module Logging
7
+ # Class that allows to filter-out sensible arguments.
6
8
  class ArgumentFilter
7
- FILTERED = '[FILTERED]'.freeze
9
+ # String used to replace sensible arguments.
10
+ FILTERED = '[FILTERED]'
8
11
 
9
12
  def initialize(filters = [])
10
13
  @filters = filters
11
14
  end
12
15
 
16
+ # Filters argument by using the filters provided upon initialization.
17
+ # @param args [Array] the list of arguments.
13
18
  def filter(args)
14
19
  compiled_filter.call(args)
15
20
  end
@@ -22,8 +27,11 @@ module Sidekiq
22
27
 
23
28
  class CompiledFilter # :nodoc:
24
29
  def self.compile(filters)
25
- return lambda { |args| args.dup } if filters.empty?
26
- strings, regexps, blocks = [], [], []
30
+ return ->(args) { args.dup } if filters.empty?
31
+
32
+ strings = []
33
+ regexps = []
34
+ blocks = []
27
35
  filters.each do |item|
28
36
  case item
29
37
  when Proc
@@ -34,10 +42,10 @@ module Sidekiq
34
42
  strings << Regexp.escape(item.to_s)
35
43
  end
36
44
  end
37
- deep_regexps, regexps = regexps.partition { |r| r.to_s.include?("\\.".freeze) }
38
- deep_strings, strings = strings.partition { |s| s.include?("\\.".freeze) }
39
- regexps << Regexp.new(strings.join('|'.freeze), true) unless strings.empty?
40
- deep_regexps << Regexp.new(deep_strings.join('|'.freeze), true) unless deep_strings.empty?
45
+ deep_regexps, regexps = regexps.partition { |r| r.to_s.include?('\\.') }
46
+ deep_strings, strings = strings.partition { |s| s.include?('\\.') }
47
+ regexps << Regexp.new(strings.join('|'), true) unless strings.empty?
48
+ deep_regexps << Regexp.new(deep_strings.join('|'), true) unless deep_strings.empty?
41
49
  new regexps, deep_regexps, blocks
42
50
  end
43
51
 
@@ -62,8 +70,16 @@ module Sidekiq
62
70
  elsif value.is_a?(Array)
63
71
  value = value.map { |v| v.is_a?(Hash) ? call(v, parents) : v }
64
72
  elsif blocks.any?
65
- key = key.dup rescue key
66
- value = value.dup rescue value
73
+ key = begin
74
+ key.dup
75
+ rescue StandardError
76
+ key
77
+ end
78
+ value = begin
79
+ value.dup
80
+ rescue StandardError
81
+ value
82
+ end
67
83
  blocks.each { |b| b.call(key, value) }
68
84
  end
69
85
  parents.pop if deep_regexps
@@ -74,4 +90,4 @@ module Sidekiq
74
90
  end
75
91
  end
76
92
  end
77
- end
93
+ end
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logstash-event'
2
4
 
3
5
  module Sidekiq
4
6
  module Logging
7
+ # Class that takes a log payload and format it to be Logstash-compatible.
5
8
  class LogstashFormatter
6
- def call(severity, time, progname, data)
9
+ def call(severity, _time, _progname, data)
7
10
  json_data = { severity: severity }
8
11
 
9
12
  if data.is_a? Hash
@@ -13,12 +16,18 @@ module Sidekiq
13
16
  end
14
17
 
15
18
  # Merge custom_options to provide customization
16
- custom_options.call(json_data) if custom_options rescue nil
19
+ begin
20
+ custom_options&.call(json_data)
21
+ rescue StandardError
22
+ nil
23
+ end
17
24
  event = LogStash::Event.new(json_data)
18
25
 
19
26
  "#{event.to_json}\n"
20
27
  end
21
28
 
29
+ private
30
+
22
31
  def custom_options
23
32
  Sidekiq::Logstash.configuration.custom_options
24
33
  end
@@ -1,52 +1,98 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sidekiq
2
4
  module Logging
5
+ # Shared module with all the logics used by job loggers.
3
6
  module Shared
4
- ENCRYPTED = '[ENCRYPTED]'.freeze
7
+ ENCRYPTED = '[ENCRYPTED]'
8
+
9
+ def log_job(job)
10
+ started_at = Time.now.utc
11
+ log_start = log_job_start(job)
12
+ Sidekiq.logger.info log_start if log_start
13
+ yield if block_given?
14
+ Sidekiq.logger.info log_job_exec(job, started_at)
15
+ rescue StandardError => e
16
+ begin
17
+ Sidekiq.logger.warn log_job_exception(job, started_at, e)
18
+ rescue StandardError => ex
19
+ log_standard_error(job, e, ex)
20
+ end
21
+ raise
22
+ end
23
+
24
+ def log_job_start(job)
25
+ return unless Sidekiq::Logstash.configuration.job_start_log
26
+ # Skips start logs for retrying jobs
27
+ return if job['failed_at']
28
+
29
+ payload = setup_payload(job)
30
+ payload['job_status'] = 'started'
31
+ payload['message'] += ': started'
32
+ process_payload(payload)
33
+ end
34
+
35
+ def log_job_exec(job, started_at)
36
+ payload = setup_payload(job)
37
+ payload['duration'] = elapsed(started_at)
38
+
39
+ payload['message'] += ": done: #{payload['duration']} sec"
40
+ payload['job_status'] = 'done'
41
+ payload['completed_at'] = Time.now.utc
42
+
43
+ process_payload(payload)
44
+ end
45
+
46
+ def log_job_exception(job, started_at, exc)
47
+ payload = setup_payload(job)
48
+ payload['duration'] = elapsed(started_at)
5
49
 
6
- def log_job(payload, started_at, exc = nil)
50
+ payload['message'] += ": fail: #{payload['duration']} sec"
51
+ payload['job_status'] = 'fail'
52
+ payload['error_message'] = exc.message
53
+ payload['error'] = exc.class
54
+ payload['error_backtrace'] = %('#{exc.backtrace.join("\n")}')
55
+
56
+ process_payload(payload)
57
+ end
58
+
59
+ private
60
+
61
+ def setup_payload(job)
7
62
  # Create a copy of the payload using JSON
8
63
  # This should always be possible since Sidekiq store it in Redis
9
- payload = JSON.parse(JSON.unparse(payload))
64
+ payload = JSON.parse(JSON.unparse(job))
10
65
 
11
66
  # Convert timestamps into Time instances
12
- %w( created_at enqueued_at retried_at failed_at completed_at ).each do |key|
67
+ %w[created_at enqueued_at retried_at failed_at completed_at].each do |key|
13
68
  payload[key] = parse_time(payload[key]) if payload[key]
14
69
  end
15
70
 
71
+ # Sets the initial message
72
+ payload['message'] = "#{payload['class']} JID-#{payload['jid']}"
73
+
16
74
  # Add process id params
17
- payload['pid'] = ::Process.pid
18
- payload['duration'] = elapsed(started_at)
75
+ payload['pid'] = ::Process.pid
19
76
 
20
- message = "#{payload['class']} JID-#{payload['jid']}"
21
-
22
- if exc
23
- payload['message'] = "#{message}: fail: #{payload['duration']} sec"
24
- payload['job_status'] = 'fail'
25
- payload['error_message'] = exc.message
26
- payload['error'] = exc.class
27
- payload['error_backtrace'] = %('#{exc.backtrace.join("\n")}')
28
- else
29
- payload['message'] = "#{message}: done: #{payload['duration']} sec"
30
- payload['job_status'] = 'done'
31
- payload['completed_at'] = Time.now.utc
32
- end
77
+ payload
78
+ end
33
79
 
80
+ def process_payload(payload)
34
81
  # Filter sensitive parameters
35
82
  unless filter_args.empty?
36
- args_filter = Sidekiq::Logging::ArgumentFilter.new(filter_args)
37
- payload['args'] = args_filter.filter({ args: payload['args'] })[:args]
83
+ args_filter = Sidekiq::Logging::ArgumentFilter.new(filter_args)
84
+ payload['args'] = args_filter.filter(args: payload['args'])[:args]
38
85
  end
39
86
 
40
87
  # If encrypt is true, the last arg is encrypted so hide it
41
- if payload['encrypt']
42
- payload['args'][-1] = ENCRYPTED
43
- end
88
+ payload['args'][-1] = ENCRYPTED if payload['encrypt']
44
89
 
45
90
  # Needs to map all args to strings for ElasticSearch compatibility
46
91
  payload['args'].map!(&:to_s)
47
92
 
48
- # Needs to map all unique_args to strings for ElasticSearch compatibility in case sidekiq-unique-jobs is used
49
- payload['unique_args'].map!(&:to_s) if payload['unique_args']
93
+ # Needs to map all unique_args to strings for ElasticSearch
94
+ # compatibility in case sidekiq-unique-jobs is used
95
+ payload['unique_args']&.map!(&:to_s)
50
96
 
51
97
  if payload['retry'].is_a?(Integer)
52
98
  payload['max_retries'] = payload['retry']
@@ -56,16 +102,22 @@ module Sidekiq
56
102
  payload
57
103
  end
58
104
 
105
+ def log_standard_error(job, job_exc, log_exc)
106
+ Sidekiq.logger.error 'Error logging the job execution!'
107
+ Sidekiq.logger.error "Job: #{job}"
108
+ Sidekiq.logger.error "Job Exception: #{job_exc}"
109
+ Sidekiq.logger.error "Log Exception: #{log_exc}"
110
+ end
111
+
59
112
  def elapsed(start)
60
113
  (Time.now.utc - start).round(3)
61
114
  end
62
115
 
63
116
  def parse_time(timestamp)
64
117
  return timestamp if timestamp.is_a? Time
65
- timestamp.is_a?(Float) ?
66
- Time.at(timestamp).utc :
67
- Time.parse(timestamp)
68
- rescue
118
+
119
+ timestamp.is_a?(Float) ? Time.at(timestamp).utc : Time.parse(timestamp)
120
+ rescue StandardError
69
121
  timestamp
70
122
  end
71
123
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sidekiq/logstash/configuration'
2
4
  require 'sidekiq/logstash/version'
3
5
  require 'sidekiq/middleware/server/logstash_logging'
@@ -6,6 +8,9 @@ require 'sidekiq/logging/argument_filter'
6
8
  require 'sidekiq/logstash_job_logger'
7
9
 
8
10
  module Sidekiq
11
+ # Main level module for Sidekiq::Logstash.
12
+ # Provides integration between Sidekiq and Logstash by changing the way
13
+ # Sidekiq jobs are logged.
9
14
  module Logstash
10
15
  def self.configuration
11
16
  @configuration ||= Configuration.new
@@ -15,7 +20,7 @@ module Sidekiq
15
20
  yield(configuration)
16
21
  end
17
22
 
18
- def self.setup(opts = {})
23
+ def self.setup(_opts = {})
19
24
  # Calls Sidekiq.configure_server to inject logics
20
25
  Sidekiq.configure_server do |config|
21
26
  # Remove default Sidekiq error_handler that logs errors
@@ -1,17 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sidekiq
2
4
  module Logstash
5
+ # Class that allows to configure the gem behaviour.
3
6
  class Configuration
4
- attr_accessor :custom_options, :filter_args
7
+ attr_accessor :custom_options, :filter_args, :job_start_log
5
8
 
6
9
  def initialize
7
10
  @filter_args = []
11
+ @job_start_log = false
8
12
  end
9
13
 
10
14
  # Added to ensure custom_options is a Proc
11
15
  def custom_options=(proc)
12
16
  raise ArgumentError, 'Argument must be a Proc.' unless proc.is_a?(Proc)
17
+
13
18
  @custom_options = proc
14
19
  end
15
20
  end
16
21
  end
17
- end
22
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sidekiq
2
4
  module Logstash
3
- VERSION = '1.1.0'
5
+ VERSION = '1.2.0'
4
6
  end
5
7
  end
@@ -1,23 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sidekiq/logging/shared'
2
4
 
3
5
  module Sidekiq
6
+ # Class used to replace Sidekiq 5 job logger.
4
7
  class LogstashJobLogger
5
8
  include Sidekiq::Logging::Shared
6
9
 
7
- def call(job, _queue)
8
- started_at = Time.now.utc
9
- yield
10
- Sidekiq.logger.info log_job(job, started_at)
11
- rescue => exc
12
- begin
13
- Sidekiq.logger.warn log_job(job, started_at, exc)
14
- rescue => ex
15
- Sidekiq.logger.error 'Error logging the job execution!'
16
- Sidekiq.logger.error "Job: #{job}"
17
- Sidekiq.logger.error "Job Exception: #{exc}"
18
- Sidekiq.logger.error "Log Exception: #{ex}"
19
- end
20
- raise
10
+ def call(job, _queue, &block)
11
+ log_job(job, &block)
21
12
  end
22
13
  end
23
- end
14
+ end
@@ -1,25 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sidekiq/logging/shared'
2
4
 
3
5
  module Sidekiq
4
6
  module Middleware
5
7
  module Server
8
+ # Class used to replace Sidekiq 4 job logger.
6
9
  class LogstashLogging
7
10
  include Sidekiq::Logging::Shared
8
11
 
9
- def call(_, job, _)
10
- started_at = Time.now.utc
11
- yield
12
- Sidekiq.logger.info log_job(job, started_at)
13
- rescue => exc
14
- begin
15
- Sidekiq.logger.warn log_job(job, started_at, exc)
16
- rescue => ex
17
- Sidekiq.logger.error 'Error logging the job execution!'
18
- Sidekiq.logger.error "Job: #{job}"
19
- Sidekiq.logger.error "Job Exception: #{exc}"
20
- Sidekiq.logger.error "Log Exception: #{ex}"
21
- end
22
- raise
12
+ def call(_, job, _, &block)
13
+ log_job(job, &block)
23
14
  end
24
15
  end
25
16
  end
@@ -1,32 +1,35 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'sidekiq/logstash/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = 'sidekiq-logstash'
8
- spec.version = Sidekiq::Logstash::VERSION
9
- spec.authors = ['Mattia Giuffrida']
10
- spec.email = ['giuffrida.mattia@gmail.com']
8
+ spec.name = 'sidekiq-logstash'
9
+ spec.version = Sidekiq::Logstash::VERSION
10
+ spec.authors = ['Mattia Giuffrida']
11
+ spec.email = ['giuffrida.mattia@gmail.com']
11
12
 
12
- spec.summary = %q{Logstash plugin for Sidekiq}
13
- spec.description = <<-DESC
14
- Sidekiq::Logstash turns your Sidekiq log into an organised, aggregated, JSON-syntax log ready to be sent to a logstash server.
15
- DESC
16
- spec.homepage = 'https://github.com/iMacTia/sidekiq-logstash'
17
- spec.license = 'MIT'
13
+ spec.summary = 'Logstash plugin for Sidekiq'
14
+ spec.description = <<~DESC
15
+ Sidekiq::Logstash turns your Sidekiq log into an organised, aggregated, JSON-syntax log ready to be sent to a logstash server.
16
+ DESC
17
+ spec.homepage = 'https://github.com/iMacTia/sidekiq-logstash'
18
+ spec.license = 'MIT'
18
19
 
19
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
- spec.bindir = 'exe'
21
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
23
  spec.require_paths = ['lib']
23
24
 
24
25
  spec.add_dependency 'logstash-event', '~> 1.2'
25
- spec.add_runtime_dependency 'sidekiq', '>= 3.0' , '<6'
26
+ spec.add_runtime_dependency 'sidekiq', '>= 3.0', '<6'
26
27
 
27
- spec.add_development_dependency 'bundler', '~> 1.11'
28
+ spec.add_development_dependency 'bundler', '< 2'
29
+ spec.add_development_dependency 'factory_girl', '~> 4.0'
28
30
  spec.add_development_dependency 'rake', '~> 10.0'
29
31
  spec.add_development_dependency 'rspec', '~> 3.0'
30
32
  spec.add_development_dependency 'rspec-json_expectations', '~> 2.1.0'
31
- spec.add_development_dependency 'factory_girl', '~> 4.0'
33
+ spec.add_development_dependency 'rubocop', '~> 0.67.2'
34
+ spec.add_development_dependency 'rubocop-performance'
32
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-logstash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Giuffrida
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-04 00:00:00.000000000 Z
11
+ date: 2019-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-event
@@ -46,18 +46,32 @@ dependencies:
46
46
  version: '6'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '2'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '2'
61
+ - !ruby/object:Gem::Dependency
62
+ name: factory_girl
49
63
  requirement: !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - "~>"
52
66
  - !ruby/object:Gem::Version
53
- version: '1.11'
67
+ version: '4.0'
54
68
  type: :development
55
69
  prerelease: false
56
70
  version_requirements: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - "~>"
59
73
  - !ruby/object:Gem::Version
60
- version: '1.11'
74
+ version: '4.0'
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: rake
63
77
  requirement: !ruby/object:Gem::Requirement
@@ -101,19 +115,33 @@ dependencies:
101
115
  - !ruby/object:Gem::Version
102
116
  version: 2.1.0
103
117
  - !ruby/object:Gem::Dependency
104
- name: factory_girl
118
+ name: rubocop
105
119
  requirement: !ruby/object:Gem::Requirement
106
120
  requirements:
107
121
  - - "~>"
108
122
  - !ruby/object:Gem::Version
109
- version: '4.0'
123
+ version: 0.67.2
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
113
127
  requirements:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: '4.0'
130
+ version: 0.67.2
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop-performance
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
117
145
  description: 'Sidekiq::Logstash turns your Sidekiq log into an organised, aggregated,
118
146
  JSON-syntax log ready to be sent to a logstash server.
119
147
 
@@ -126,6 +154,8 @@ extra_rdoc_files: []
126
154
  files:
127
155
  - ".gitignore"
128
156
  - ".rspec"
157
+ - ".rubocop.yml"
158
+ - ".rubocop_todo.yml"
129
159
  - ".ruby-gemset"
130
160
  - ".ruby-version"
131
161
  - ".travis.yml"
@@ -166,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
196
  - !ruby/object:Gem::Version
167
197
  version: '0'
168
198
  requirements: []
169
- rubygems_version: 3.0.2
199
+ rubygems_version: 3.0.3
170
200
  signing_key:
171
201
  specification_version: 4
172
202
  summary: Logstash plugin for Sidekiq