Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
return the sourcecode for a method

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.yardopts
README.markdown
Rakefile

README.markdown

method_source

(C) John Mair (banisterfiend) 2010

retrieve the sourcecode for a method

NOTE: This simply utilizes Method#source_location in Ruby 1.9; it does not access the live AST.

method_source is a utility to return a method's sourcecode as a Ruby string. Also returns Proc and Lambda sourcecode.

Method comments can also be extracted using the comment method.

It is written in pure Ruby (no C).

method_source provides the source and comment methods to the Method and UnboundMethod and Proc classes.

Example: display method source

Set.instance_method(:merge).source.display
# =>
def merge(enum)
  if enum.instance_of?(self.class)
    @hash.update(enum.instance_variable_get(:@hash))
  else
    do_with_enum(enum) { |o| add(o) }
  end

  self
end

Example: display method comments

Set.instance_method(:merge).comment.display
# =>
# Merges the elements of the given enumerable object to the set and
# returns self.

Limitations:

  • Only works with Ruby 1.9+
  • Cannot return source for C methods.
  • Cannot return source for dynamically defined methods.

Possible Applications:

Special Thanks

Adam Sanderson for comment functionality.

Something went wrong with that request. Please try again.