Class: RuboCop::Cop::Betterment::VagueSerialize

Inherits:
Base
  • Object
show all
Defined in:
lib/rubocop/cop/betterment/vague_serialize.rb

Constant Summary collapse

MSG =
'Active Record models with serialized columns should specify which ' \
'deserializer to use instead of falling back to the default.'

Instance Method Summary collapse

Instance Method Details

#kwargs_with_coder?(node) ⇒ Object



16
# File 'lib/rubocop/cop/betterment/vague_serialize.rb', line 16

def_node_matcher :kwargs_with_coder?, '(hash <(pair (sym :coder) const) ...>)'

#on_send(node) ⇒ Object Also known as: on_csend



23
24
25
# File 'lib/rubocop/cop/betterment/vague_serialize.rb', line 23

def on_send(node)
  add_offense(node) if serialize?(node) && !valid_serialize?(node)
end

#serialize?(node) ⇒ Object



11
12
13
# File 'lib/rubocop/cop/betterment/vague_serialize.rb', line 11

def_node_matcher :serialize?, <<-PATTERN
  (send nil? :serialize ...)
PATTERN

#valid_serialize?(node) ⇒ Object



19
20
21
# File 'lib/rubocop/cop/betterment/vague_serialize.rb', line 19

def_node_matcher :valid_serialize?, <<-PATTERN
  (send nil? :serialize _ { const !#kwargs_with_coder?? | #kwargs_with_coder? })
PATTERN