Class: YARD::Handlers::Ruby::Legacy::ConstantHandler

Inherits:
Base show all
Defined in:
lib/yard/handlers/ruby/legacy/constant_handler.rb

Constant Summary

HANDLER_MATCH =
/\A[A-Z]\w*\s*=[^=]\s*/m

Constants included from YARD::Parser::Ruby::Legacy::RubyToken

EXPR_ARG, EXPR_BEG, EXPR_CLASS, EXPR_DOT, EXPR_END, EXPR_FNAME, EXPR_MID, NEWLINE_TOKEN, TkReading2Token, TkSymbol2Token, TokenDefinitions

Constants included from YARD::CodeObjects

BUILTIN_ALL, BUILTIN_CLASSES, BUILTIN_EXCEPTIONS, BUILTIN_EXCEPTIONS_HASH, BUILTIN_MODULES, CONSTANTMATCH, CSEP, CSEPQ, ISEP, ISEPQ, METHODMATCH, METHODNAMEMATCH, NAMESPACEMATCH, NSEP, NSEPQ

Instance Method Summary

Methods inherited from Base

handles?, #parse_block

Methods included from YARD::Parser::Ruby::Legacy::RubyToken

#Token, def_token, #set_token_position

Methods inherited from YARD::Handlers::Base

clear_subclasses, #ensure_loaded!, handlers, handles, handles?, #initialize, namespace_only, namespace_only?, #parse_block, #push_state, #register, subclasses

Constructor Details

This class inherits a constructor from YARD::Handlers::Base

Instance Method Details

- (Object) process



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/yard/handlers/ruby/legacy/constant_handler.rb', line 5

def process
  # Don't document CONSTANTS if they're set in second class objects (methods) because
  # they're not "static" when executed from a method
  return unless owner.is_a? NamespaceObject
  
  name, value = *statement.tokens.to_s.split(/\s*=\s*/, 2)
  if value =~ /\A\s*Struct.new(?:\s*\(?|\b)/
    process_structclass(name, $')
  else
    register ConstantObject.new(namespace, name) {|o| o.source = statement; o.value = value.strip }
  end
end