class RDoc::Generator::Mdoc::Method

Attributes

mandb_section[R]
rdoc_method[R]
visibility[R]

Public Class Methods

new(rdoc_method, mandb_section, visibility = nil) click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 8
def initialize(rdoc_method, mandb_section, visibility = nil)
  @rdoc_method = rdoc_method
  @mandb_section = mandb_section
  @visibility = visibility.to_s
end

Public Instance Methods

alias?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 72
def alias?
  !aliased_method.nil?
end
aliased?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 81
def aliased?
  !aliases.empty?
end
aliased_method() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 76
def aliased_method
  @aliased_method ||= rdoc_method.is_alias_for &&
    self.class.new(rdoc_method.is_alias_for, mandb_section)
end
aliases() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 85
def aliases
  @aliases ||= rdoc_method.aliases.map do |_alias|
    self.class.new(_alias, mandb_section)
  end
end
calls_super?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 54
def calls_super?
  !superclass_method.nil?
end
described?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 34
def described?
  !description.empty?
end
description() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 38
def description
  comment.mdoc_formatted_content
end
full_name() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 18
def full_name
  @full_name ||= if class_method?
    replace_last_double_colon_with_dot(rdoc_method.full_name)
  else
    rdoc_method.full_name
  end
end
has_invocation_examples?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 42
def has_invocation_examples?
  !invocation_examples.empty?
end
has_source?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 63
def has_source?
  !source.nil?
end
invocation_examples() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 46
def invocation_examples
  @invocation_examples ||= if rdoc_method.call_seq.nil?
    []
  else
    extract_invocation_examples(rdoc_method.call_seq)
  end
end
name() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 14
def name
  rdoc_method.name
end
object() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 95
def object
  @object ||= Module.new(rdoc_method.parent, mandb_section)
end
parameters() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 26
def parameters
  rdoc_method.params.to_s.gsub(/[\(\)]/, '').split(", ")
end
reference() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 91
def reference
  "#{full_name} #{mandb_section}"
end
short_description() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 30
def short_description
  comment.first_paragraph.truncate(50)
end
source() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 67
def source
  @source ||= rdoc_method.token_stream &&
    strip_source_file_path(extract_source(rdoc_method.token_stream))
end
superclass_method() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 58
def superclass_method
  @superclass_method ||= rdoc_method.superclass_method &&
    self.class.new(rdoc_method.superclass_method, mandb_section)
end

Private Instance Methods

class_method?() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 103
def class_method?
  rdoc_method.singleton
end
comment() click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 111
def comment
  @comment ||= Comment.new(rdoc_method.comment)
end
extract_invocation_examples(call_seq) click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 115
def extract_invocation_examples(call_seq)
  call_seq.split("\n").map do |invocation_example|
    strip_receiver(invocation_example)
  end
end
extract_source(token_stream) click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 129
def extract_source(token_stream)
  token_stream.compact.map { |t| t.text }.join('')
end
replace_last_double_colon_with_dot(string) click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 107
def replace_last_double_colon_with_dot(string)
  string.sub(/(.*)::(.*)/, "\\1.\\2")
end
strip_receiver(invocation_example) click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 121
def strip_receiver(invocation_example)
  invocation_example.gsub(/^\w+\./, '')
end
strip_source_file_path(source) click to toggle source
# File lib/rdoc/generator/mdoc/method.rb, line 125
def strip_source_file_path(source)
  source.lines[1..-1].join
end