AnyMethod
is the base class for objects representing methods
- #
- A
- C
- H
- M
- N
- P
- S
Attributes
[RW] | c_function | The C function that implements this method (if it was defined in a C file) |
[RW] | calls_super | If true this method uses |
[RW] | dont_rename_initialize | Don’t rename #initialize to ::new |
[RW] | params | Parameters for this method |
[RW] | section_title | The section title of the method (if defined in a C file via |
Class Public methods
Instance Public methods
add_alias(an_alias, context = nil) Link
Adds an_alias
as an alias for this method in context
.
# File ruby/lib/rdoc/any_method.rb, line 59 def add_alias an_alias, context = nil method = self.class.new an_alias.text, an_alias.new_name method.record_location an_alias.file method.singleton = self.singleton method.params = self.params method.visibility = self.visibility method.comment = an_alias.comment method.is_alias_for = self @aliases << method context.add_method method if context method end
aref_prefix() Link
Prefix for aref
is ‘method’.
arglists() Link
call_seq() Link
Different ways to call this method
call_seq=(call_seq) Link
Sets the different ways you can call this method. If an empty call_seq
is given nil is assumed.
See also param_seq
has_call_seq?() Link
Whether the method has a call-seq.
marshal_dump() Link
Dumps this AnyMethod
for use by ri. See also marshal_load
# File ruby/lib/rdoc/any_method.rb, line 147 def marshal_dump aliases = @aliases.map do |a| [a.name, parse(a.comment)] end is_alias_for = [ @is_alias_for.parent.full_name, @is_alias_for.singleton, @is_alias_for.name ] if @is_alias_for [ MARSHAL_VERSION, @name, full_name, @singleton, @visibility, parse(@comment), @call_seq, @block_params, aliases, @params, @file.relative_name, @calls_super, @parent.name, @parent.class, @section.title, is_alias_for, ] end
marshal_load(array) Link
Loads this AnyMethod
from array
. For a loaded AnyMethod
the following methods will return cached values:
# File ruby/lib/rdoc/any_method.rb, line 184 def marshal_load array initialize_visibility @dont_rename_initialize = nil @token_stream = nil @aliases = [] @parent = nil @parent_name = nil @parent_class = nil @section = nil @file = nil version = array[0] @name = array[1] @full_name = array[2] @singleton = array[3] @visibility = array[4] @comment = array[5] @call_seq = array[6] @block_params = array[7] # 8 handled below @params = array[9] # 10 handled below @calls_super = array[11] @parent_name = array[12] @parent_title = array[13] @section_title = array[14] @is_alias_for = array[15] array[8].each do |new_name, comment| add_alias RDoc::Alias.new(nil, @name, new_name, comment, @singleton) end @parent_name ||= if @full_name =~ /#/ then $` else name = @full_name.split('::') name.pop name.join '::' end @file = RDoc::TopLevel.new array[10] if version > 0 end
name() Link
param_list() Link
A list of this method’s method and yield parameters. call-seq
params are preferred over parsed method and block params.
# File ruby/lib/rdoc/any_method.rb, line 246 def param_list if @call_seq then params = @call_seq.split("\n").last params = params.sub(/.*?\((.*)\)/, '\1') params = params.sub(/(\{|do)\s*\|([^|]*)\|.*/, ',\2') elsif @params then params = @params.sub(/\((.*)\)/, '\1') params << ",#{@block_params}" if @block_params elsif @block_params then params = @block_params else return [] end if @block_params then # If this method has explicit block parameters, remove any explicit # &block params = params.sub(/,?\s*&\w+/, '') else params = params.sub(/\&(\w+)/, '\1') end params = params.gsub(/\s+/, '').split(',').reject(&:empty?) params.map { |param| param.sub(/=.*/, '') } end
param_seq() Link
Pretty parameter list for this method. If the method’s parameters were given by call-seq
it is preferred over the parsed values.
# File ruby/lib/rdoc/any_method.rb, line 278 def param_seq if @call_seq then params = @call_seq.split("\n").last params = params.sub(/[^( ]+/, '') params = params.sub(/(\|[^|]+\|)\s*\.\.\.\s*(end|\})/, '\1 \2') elsif @params then params = @params.gsub(/\s*\#.*/, '') params = params.tr_s("\n ", " ") params = "(#{params})" unless params[0] == ?( else params = '' end if @block_params then # If this method has explicit block parameters, remove any explicit # &block params = params.sub(/,?\s*&\w+/, '') block = @block_params.tr_s("\n ", " ") if block[0] == ?( block = block.sub(/^\(/, '').sub(/\)/, '') end params << " { |#{block}| ... }" end params end
skip_description?() Link
Whether to skip the method description, true for methods that have aliases with a call-seq that doesn’t include the method name.
store=(store) Link
Sets the store for this method and its referenced code objects.
superclass_method() Link
For methods that super
, find the superclass method that would be called.
# File ruby/lib/rdoc/any_method.rb, line 326 def superclass_method return unless @calls_super return @superclass_method if @superclass_method parent.each_ancestor do |ancestor| if method = ancestor.method_list.find { |m| m.name == @name } then @superclass_method = method break end end @superclass_method end