class WipeOut::Validators::DefinedRelations

Public Instance Methods

call() click to toggle source
# File lib/wipe_out/validators/defined_relations.rb, line 4
def call
  return if ignored?

  ar_class.reflect_on_all_associations.each do |relation|
    unless indirect_relation?(relation) || ignore_relation?(relation) || plan.relations[relation.name].present?
      result.add_error("#{ar_class.name} relation is missing: :#{relation.name}")
    end
  end
end

Private Instance Methods

ignore_relation?(relation) click to toggle source
# File lib/wipe_out/validators/defined_relations.rb, line 21
def ignore_relation?(relation)
  plan.ignored.include?(relation.name) || config.ignored_attributes.include?(relation.name)
end
indirect_relation?(relation) click to toggle source
# File lib/wipe_out/validators/defined_relations.rb, line 16
def indirect_relation?(relation)
  [ActiveRecord::Reflection::ThroughReflection, ActiveRecord::Reflection::BelongsToReflection]
    .include?(relation.class)
end