title: Where are these "without" methods in Rails gems getting defined?
body: <p>I've seen a few places where <code>*_without_*</code> methods are being referenced in gems, and I don't see where they're being defined.  Here are two examples from the <code>validationgroup</code> and <code>delayed_jobs</code> gems.</p>
  
  <ol>
  <li><p>In <a href="https://github.com/akira/validationgroup/blob/master/lib/validation_group.rb" rel="nofollow">validation_group.rb</a>, there is a method <code>add_with_validation_group</code> that is defined that references <code>add_without_validation_group</code> on its last line; however, <code>add_without_validation_group</code> does not appear to be defined anywhere.</p>
  
  <pre><code>def add_with_validation_group(attribute,
                                msg = @@default_error_messages[:invalid], *args,
                                &amp;block)
    add_error = true
    if @base.validation_group_enabled?
      current_group = @base.current_validation_group
      found = ValidationGroup::Util.current_and_ancestors(@base.class).
        find do |klass|
          klasses = klass.validation_group_classes
          klasses[klass] &amp;&amp; klasses[klass][current_group] &amp;&amp;
          klasses[klass][current_group].include?(attribute)
        end
      add_error = false unless found
    end
    add_without_validation_group(attribute, msg, *args,&amp;block) if add_error
  end
  </code></pre></li>
  <li><p>In DelayedJob's <a href="https://github.com/tobi/delayed_job/blob/master/lib/delayed/message_sending.rb" rel="nofollow">message_sending.rb</a>, dynamically passed method parameters are being called as <code>#{method}_without_send_later</code>.  However, I only see where <code>#{method}_with_send_later</code> is being defined anywhere in this gem.</p>
  
  <pre><code>def handle_asynchronously(method)
    without_name = "#{method}_without_send_later"
    define_method("#{method}_with_send_later") do |*args|
      send_later(without_name, *args)
    end
    alias_method_chain method, :send_later
  end
  </code></pre></li>
  </ol>
  
  <p>So my belief is that there's some Rails magic I'm missing with these "without" methods.  However, I can't seem to figure out what to search for in Google to answer the question on my own.</p>