public static function source_method($class, $name) {
        if (!method_exists($class, $name)) {
            return FALSE;
        }
        $refl = new ReflectionMethod($class, $name);
        
        // Open the file and set the line position
        $file = fopen($refl->getFileName(), 'r');
        $line = 0;

        // Set the reading range
        $range = array('start' => $refl->getStartLine(), 'end' => $refl->getEndLine());

        // Set the zero-padding amount for line numbers
        $format = '% ' . strlen($range['end']) . 'd';

        $source = '';
        while (($row = fgets($file)) !== FALSE) {
            // Increment the line number
            if (++$line > $range['end'])
                break;

            if ($line >= $range['start']) {
                // Make the row safe for output
                $row = htmlspecialchars($row, ENT_NOQUOTES, Kohana::$charset);

                // Trim whitespace and sanitize the row
                $row = '<span class="number">' . sprintf($format, $line) . '</span> ' . $row;
                $row = '<span class="line">' . $row . '</span>';
                // Add to the captured source
                $source .= $row;
            }
        }

        // Close the file
        fclose($file);

        return '<pre class="source"><code>' . $source . '</code></pre>';
    }