Class: YARD::Handlers::Ruby::Legacy::MacroHandler
- Includes:
- CodeObjects, MacroHandlerMethods
- Defined in:
- lib/yard/handlers/ruby/legacy/macro_handler.rb
Overview
Handles a macro (dsl-style method)
Constant Summary
Constants included from CodeObjects
CodeObjects::BUILTIN_ALL, CodeObjects::BUILTIN_CLASSES, CodeObjects::BUILTIN_EXCEPTIONS, CodeObjects::BUILTIN_EXCEPTIONS_HASH, CodeObjects::BUILTIN_MODULES, CodeObjects::CONSTANTMATCH, CodeObjects::CSEP, CodeObjects::CSEPQ, CodeObjects::ISEP, CodeObjects::ISEPQ, CodeObjects::METHODMATCH, CodeObjects::METHODNAMEMATCH, CodeObjects::NAMESPACEMATCH, CodeObjects::NSEP, CodeObjects::NSEPQ
Constants included from Parser::Ruby::Legacy::RubyToken
Parser::Ruby::Legacy::RubyToken::EXPR_ARG, Parser::Ruby::Legacy::RubyToken::EXPR_BEG, Parser::Ruby::Legacy::RubyToken::EXPR_CLASS, Parser::Ruby::Legacy::RubyToken::EXPR_DOT, Parser::Ruby::Legacy::RubyToken::EXPR_END, Parser::Ruby::Legacy::RubyToken::EXPR_FNAME, Parser::Ruby::Legacy::RubyToken::EXPR_MID, Parser::Ruby::Legacy::RubyToken::NEWLINE_TOKEN, Parser::Ruby::Legacy::RubyToken::TkReading2Token, Parser::Ruby::Legacy::RubyToken::TkSymbol2Token
Instance Attribute Summary
Attributes inherited from Base
#extra_state, #globals, #namespace, #owner, #parser, #scope, #statement, #visibility
Instance Method Summary collapse
-
#process ⇒ void
Main processing callback.
Methods included from MacroHandlerMethods
#create_attribute_data, #expand_macro, #expanded_macro_or_docstring, #find_or_create_macro, #method_name, #method_signature, #sanitize_scope, #sanitize_visibility
Methods inherited from Base
#call_params, #caller_method, handles?, #parse_block
Methods inherited from Base
#call_params, #caller_method, clear_subclasses, #ensure_loaded!, #expand_macro, #find_or_create_macro, handlers, handles, handles?, in_file, #initialize, matches_file?, namespace_only, namespace_only?, #parse_block, process, #push_state, #register, subclasses
Constructor Details
This class inherits a constructor from YARD::Handlers::Base
Instance Method Details
#process ⇒ void
This method returns an undefined value.
Main processing callback
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/yard/handlers/ruby/legacy/macro_handler.rb', line 12 process do globals.__attached_macros ||= {} if !globals.__attached_macros[caller_method] return if Ruby::MacroHandler::IGNORE_METHODS[caller_method] return if !statement.comments || statement.comments.empty? end comments = statement.comments ? statement.comments.join("\n") : "" @macro, @docstring = nil, Docstring.new(comments) find_or_create_macro(@docstring) return if !@macro && !statement.comments_hash_flag && @docstring..size == 0 @docstring = name = method_name raise UndocumentableError, "method, missing name" if name.nil? || name.empty? tmp_scope = sanitize_scope tmp_vis = sanitize_visibility object = MethodObject.new(namespace, name, tmp_scope) register(object) object.visibility = tmp_vis object.dynamic = true object.signature = method_signature create_attribute_data(object) end |