Method deprecated or moved
  
    This method is deprecated or moved on the latest stable version.
    The last existing version (v1_8_7_330) is shown here.  
  
  
    
       
       
       
    
  
 
  find_body(meth_name, meth_obj, body, quiet = false)
  private
  
    
    
Find the C code corresponding to a Ruby method
   
  
    Show source    
    
      
    def find_body(meth_name, meth_obj, body, quiet = false)
      case body
      when %r{((?>/\*.*?\*/\s*))(?:static\s+)?VALUE\s+#{meth_name}
              \s*(\(.*?\)).*?^}xm
        comment, params = $1, $2
        body_text = $&
        remove_private_comments(comment) if comment
        
        
        re = Regexp.escape(body_text) + '[^(]*^\{.*?^\}'
        if Regexp.new(re, Regexp::MULTILINE).match(body)
          body_text = $&
        end
        
        
        
        
        
        
        override_comment = find_override_comment(meth_obj.name)
        comment = override_comment if override_comment
        find_modifiers(comment, meth_obj) if comment
        
        meth_obj.start_collecting_tokens
        meth_obj.add_token(RubyToken::Token.new(1,1).set_text(body_text))
        meth_obj.comment = mangle_comment(comment)
      when %r{((?>/\*.*?\*/\s*))^\s*\#\s*define\s+#{meth_name}\s+(\w+)}m
        comment = $1
        find_body($2, meth_obj, body, true)
        find_modifiers(comment, meth_obj)
        meth_obj.comment = mangle_comment(comment) + meth_obj.comment
      when %r{^\s*\#\s*define\s+#{meth_name}\s+(\w+)}m
        unless find_body($1, meth_obj, body, true)
          warn "No definition for #{meth_name}" unless quiet
          return false
        end
      else
        
        comment = find_override_comment(meth_obj.name)
        if comment
          find_modifiers(comment, meth_obj)
          meth_obj.comment = mangle_comment(comment)
        else
          warn "No definition for #{meth_name}" unless quiet
          return false
        end
      end
      true
    end