package org.radrails.rails.internal.parser.warnings; import org.jruby.ast.CallNode; import org.radrails.rails.core.IDeprecationProblems; import org.radrails.rails.internal.core.RailsPlugin; import org.rubypeople.rdt.core.parser.warnings.RubyLintVisitor; public class PushWithAttributes extends RubyLintVisitor { public PushWithAttributes() { super(RailsPlugin.getInstance().getOptions(), ""); } @Override protected String getOptionKey() { return RailsPlugin.RAILS_DEPRECATION_PUSH_WITH_ATTRIBUTES; } @Override public Object visitCallNode(CallNode iVisited) { String name = iVisited.getName(); if (name.equals("push_with_attributes")) { createProblem(iVisited.getPosition(), "Deprecated method call, use has_many :through for rich many-to-many associations"); } return super.visitCallNode(iVisited); } @Override protected int getProblemID() { return IDeprecationProblems.DeprecatedPushWithAttributes; } }