class RuboCop::Cop::Lint::DefineDeletionStrategy
This cop checks whether an ActiveRecord model implements the `.anonymise` preference (using the Anony
gem).
@example Good
class User < ApplicationRecord anonymise do overwrite do email :email hex :given_name end end end
@example Bad
class MyNewThing < ApplicationRecord; end
Constants
- MSG
Public Instance Methods
class_name(node)
click to toggle source
# File lib/anony/cops/define_deletion_strategy.rb, line 44 def class_name(node) node.children[0].const_name end
model?(node)
click to toggle source
# File lib/anony/cops/define_deletion_strategy.rb, line 38 def model?(node) return unless (superclass = node.children[1]) superclass.const_name == model_superclass_name end
model_superclass_name()
click to toggle source
# File lib/anony/cops/define_deletion_strategy.rb, line 48 def model_superclass_name cop_config["ModelSuperclass"] || "ApplicationRecord" end
on_class(node)
click to toggle source
# File lib/anony/cops/define_deletion_strategy.rb, line 31 def on_class(node) return unless model?(node) return if uses_anonymise?(node) add_offense(node, message: sprintf(MSG, model: class_name(node))) end