class YARD::Tags::OverloadTag

Attributes

docstring[R]
parameters[R]
signature[R]

Public Class Methods

new(tag_name, text) click to toggle source
Calls superclass method
# File lib/yard/tags/overload_tag.rb, line 6
def initialize(tag_name, text)
  super(tag_name, nil)
  parse_tag(text)
  parse_signature
end

Public Instance Methods

has_tag?(name) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 14
def has_tag?(name) docstring.has_tag?(name) end
is_a?(other) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 35
def is_a?(other)
  object.is_a?(other) || self.class >= other.class || false
end
Also aliased as: kind_of?
kind_of?(other)
Alias for: is_a?
method_missing(*args, &block) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 27
def method_missing(*args, &block)
  object.send(*args, &block)
end
name(prefix = false) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 22
def name(prefix = false)
  return @name unless prefix
  object.scope == :class ? @name.to_s : "#{object.send(:sep)}#{@name}"
end
object=(value) click to toggle source
Calls superclass method
# File lib/yard/tags/overload_tag.rb, line 16
def object=(value)
  super(value)
  docstring.object = value
  docstring.tags.each {|tag| tag.object = value }
end
tag(name) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 12
def tag(name) docstring.tag(name) end
tags(name = nil) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 13
def tags(name = nil) docstring.tags(name) end
type() click to toggle source
# File lib/yard/tags/overload_tag.rb, line 31
def type
  object.type
end

Private Instance Methods

parse_signature() click to toggle source
# File lib/yard/tags/overload_tag.rb, line 52
def parse_signature
  if signature =~ /^(?:def\s)?\s*(#{CodeObjects::METHODMATCH})(?:(?:\s+|\s*\()(.*)(?:\)\s*$)?)?/m
    meth, args = $1, $2
    meth.gsub!(/\s+/,'')
    # FIXME refactor this code to not make use of the Handlers::Base class (tokval_list should be moved)
    toks = YARD::Parser::Ruby::Legacy::TokenList.new(args)
    args = YARD::Handlers::Ruby::Legacy::Base.new(nil, nil).send(:tokval_list, toks, :all)
    args.map! {|a| k, v = *a.split('=', 2); [k.strip.to_s, (v ? v.strip : nil)] } if args
    @name = meth.to_sym
    @parameters = args
  end
end
parse_tag(text) click to toggle source
# File lib/yard/tags/overload_tag.rb, line 42
def parse_tag(text)
  @signature, text = *text.split(/\r?\n/, 2)
  @signature.strip!
  text ||= ""
  numspaces = text[/\A(\s*)/, 1].length
  text.gsub!(/^[ \t]{#{numspaces}}/, '')
  text.strip!
  @docstring = Docstring.new(text, nil)
end