Module: YARD::CodeObjects

Included in:
Handlers::Base, Handlers::C::HandlerMethods, Handlers::Ruby::DSLHandler, Handlers::Ruby::DSLHandlerMethods, Handlers::Ruby::Legacy::DSLHandler, Handlers::Ruby::StructHandlerMethods
Defined in:
lib/yard/autoload.rb,
lib/yard/code_objects/base.rb,
lib/yard/code_objects/proxy.rb,
lib/yard/code_objects/root_object.rb,
lib/yard/code_objects/class_object.rb,
lib/yard/code_objects/macro_object.rb,
lib/yard/code_objects/method_object.rb,
lib/yard/code_objects/module_object.rb,
lib/yard/code_objects/constant_object.rb,
lib/yard/code_objects/namespace_object.rb,
lib/yard/code_objects/extra_file_object.rb,
lib/yard/code_objects/class_variable_object.rb,
lib/yard/code_objects/extended_method_object.rb

Overview

A “code object” is defined as any entity in the Ruby language. Classes, modules, methods, class variables and constants are the major objects, but DSL languages can create their own by inheriting from Base.

Defined Under Namespace

Classes: Base, ClassObject, ClassVariableObject, CodeObjectList, ConstantObject, ExtendedMethodObject, ExtraFileObject, MacroObject, MethodObject, ModuleObject, NamespaceObject, Proxy, ProxyMethodError, RootObject

Constant Summary collapse

NSEP =

Namespace separator

'::'
NSEPQ =

Regex-quoted namespace separator

NSEP
ISEP =

Instance method separator

'#'
ISEPQ =

Regex-quoted instance method separator

ISEP
CSEP =

Class method separator

'.'
CSEPQ =

Regex-quoted class method separator

Regexp.quote CSEP
CONSTANTMATCH =

Regular expression to match constant name

/[A-Z]\w*/
CONSTANTSTART =

Regular expression to match the beginning of a constant

/^[A-Z]/
NAMESPACEMATCH =

Regular expression to match namespaces (const A or complex path A::B)

/(?:(?:#{NSEPQ}\s*)?#{CONSTANTMATCH})+/
METHODNAMEMATCH =

Regular expression to match a method name

/[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|![=~]?|<=>|[<>]=?|\*\*|[-\/+%^&*~`|]|\[\]=?/
METHODMATCH =

Regular expression to match a fully qualified method def (self.foo, Class.foo).

/(?:(?:#{NAMESPACEMATCH}|[a-z]\w*)\s*(?:#{CSEPQ}|#{NSEPQ})\s*)?#{METHODNAMEMATCH}/
BUILTIN_EXCEPTIONS =

All builtin Ruby exception classes for inheritance tree.

["SecurityError", "Exception", "NoMethodError", "FloatDomainError",
"IOError", "TypeError", "NotImplementedError", "SystemExit", "Interrupt", "SyntaxError",
"RangeError", "NoMemoryError", "ArgumentError", "ThreadError", "EOFError", "RuntimeError",
"ZeroDivisionError", "StandardError", "LoadError", "NameError", "LocalJumpError", "SystemCallError",
"SignalException", "ScriptError", "SystemStackError", "RegexpError", "IndexError"]
BUILTIN_CLASSES =
Note:

MatchingData is a 1.8.x legacy class

All builtin Ruby classes for inheritance tree.

["TrueClass", "Array", "Dir", "Struct", "UnboundMethod", "Object", "Fixnum", "Float",
"ThreadGroup", "MatchingData", "MatchData", "Proc", "Binding", "Class", "Time", "Bignum", "NilClass", "Symbol",
"Numeric", "String", "Data", "MatchData", "Regexp", "Integer", "File", "IO", "Range", "FalseClass",
"Method", "Continuation", "Thread", "Hash", "Module"] + BUILTIN_EXCEPTIONS
BUILTIN_MODULES =

All builtin Ruby modules for mixin handling.

["ObjectSpace", "Signal", "Marshal", "Kernel", "Process", "GC", "FileTest", "Enumerable",
"Comparable", "Errno", "Precision", "Math"]
BUILTIN_ALL =

All builtin Ruby classes and modules.

BUILTIN_CLASSES + BUILTIN_MODULES
BUILTIN_EXCEPTIONS_HASH =

Hash of BUILTIN_EXCEPTIONS as keys and true as value (for O(1) lookups)

BUILTIN_EXCEPTIONS.inject({}) {|h,n| h.update(n => true) }