Class: RuboCop::Cop::Sidekiq::SymbolArgument
- Extended by:
- AutoCorrector
- Includes:
- ArgumentTraversal
- Defined in:
- lib/rubocop/cop/sidekiq/symbol_argument.rb
Overview
Checks for symbol arguments passed to Sidekiq job methods.
Symbols cannot be properly serialized to JSON and will be converted to strings. This can lead to unexpected behavior.
Constant Summary collapse
- MSG =
'Do not pass symbols to Sidekiq jobs. Use strings instead.'- RESTRICT_ON_SEND =
PerformMethods.all
Instance Method Summary collapse
- #on_send(node) ⇒ Object (also: #on_csend)
- #sidekiq_perform_call?(node) ⇒ Object
Methods included from Sidekiq::Language
#active_job_class?, #perform_call?, #sidekiq_include?, #sidekiq_options_call?
Instance Method Details
#on_send(node) ⇒ Object Also known as: on_csend
35 36 37 38 39 |
# File 'lib/rubocop/cop/sidekiq/symbol_argument.rb', line 35 def on_send(node) sidekiq_perform_call?(node) do |args| check_arguments(args) end end |
#sidekiq_perform_call?(node) ⇒ Object
31 32 33 |
# File 'lib/rubocop/cop/sidekiq/symbol_argument.rb', line 31 def_node_matcher :sidekiq_perform_call?, "(send _ {\#{RESTRICT_ON_SEND.map(&:inspect).join(' ')}} $...)\n" |