Parent

FastRI::NameDescriptor

Alternative NameDescriptor implementation which doesn’t require class/module names to be properly capitalized.

Rules:

Attributes

class_names[R]
is_class_method[R]

true and false have the obvious meaning. nil means we don’t care

method_name[R]

Public Class Methods

new(arg) click to toggle source
# File lib/fastri/name_descriptor.rb, line 26
def initialize(arg)
  @class_names = []
  @method_name = nil
  @is_class_method = nil

  case arg
  when /((?:[^:]*::)*[^:]*)(#|::|\.)(.*)$/
    ns, sep, meth_or_class = $~.captures
    # optimization attempt: try to guess the real capitalization,
    # so we get a direct hit
    @class_names = ns.split(/::/).map{|x|  x[0,1] = x[0,1].upcase; x }
    if ]# .].include? sep
      @method_name = meth_or_class
      @is_class_method = 
        case sep
        when "#";  false
        when ".";  nil
        end
    else
      if ("A".."Z").include? meth_or_class[0,1] # 1.9 compatibility
        @class_names << meth_or_class
      else
        @method_name     = meth_or_class
        @is_class_method = true
      end
    end
  when /^[^#:.]+/
    if ("A".."Z").include? arg[0,1]
      @class_names = [arg]
    else
      @method_name     = arg.dup
      @is_class_method = nil
    end
  else
    raise RiError, "Cannot create NameDescriptor from #{arg}"
  end
end

Public Instance Methods

full_class_name() click to toggle source

Return the full class name (with ‘::’ between the components) or “” if there’s no class name

# File lib/fastri/name_descriptor.rb, line 66
def full_class_name
  @class_names.join("::")
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.