Class: YARD::Handlers::Ruby::Legacy::Base Abstract
- Includes:
- Parser::Ruby::Legacy::RubyToken
- Defined in:
- lib/yard/handlers/ruby/legacy/base.rb
Overview
See Base for subclassing information.
This is the base handler for the legacy parser. To implement a legacy handler, subclass this class.
Direct Known Subclasses
AliasHandler, AttributeHandler, ClassConditionHandler, ClassHandler, ClassVariableHandler, CommentHandler, ConstantHandler, DSLHandler, ExceptionHandler, MethodHandler, MixinHandler, ModuleFunctionHandler, ModuleHandler, PrivateClassMethodHandler, PrivateConstantHandler, VisibilityHandler, YieldHandler
Constant Summary
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
Constants included from CodeObjects
CodeObjects::BUILTIN_ALL, CodeObjects::BUILTIN_CLASSES, CodeObjects::BUILTIN_EXCEPTIONS, CodeObjects::BUILTIN_EXCEPTIONS_HASH, CodeObjects::BUILTIN_MODULES, CodeObjects::CONSTANTMATCH, CodeObjects::CONSTANTSTART, CodeObjects::CSEP, CodeObjects::CSEPQ, CodeObjects::ISEP, CodeObjects::ISEPQ, CodeObjects::METHODMATCH, CodeObjects::METHODNAMEMATCH, CodeObjects::NAMESPACEMATCH, CodeObjects::NSEP, CodeObjects::NSEPQ
Class Method Summary collapse
-
.handles?(stmt) ⇒ Boolean
Whether or not a Parser::Ruby::Legacy::Statement object should be handled by this handler.
Instance Method Summary collapse
- #call_params ⇒ Object
- #caller_method ⇒ Object
-
#parse_block(opts = {}) ⇒ Object
Parses a statement’s block with a set of state values.
Constructor Details
This class inherits a constructor from YARD::Handlers::Base
Class Method Details
.handles?(stmt) ⇒ Boolean
Returns whether or not a Parser::Ruby::Legacy::Statement object should be handled by this handler.
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/yard/handlers/ruby/legacy/base.rb', line 14 def self.handles?(stmt) handlers.any? do |a_handler| case a_handler when String stmt.tokens.first.text == a_handler when Regexp stmt.tokens.to_s =~ a_handler else a_handler == stmt.tokens.first.class end end end |
Instance Method Details
#call_params ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/yard/handlers/ruby/legacy/base.rb', line 43 def call_params if statement.tokens.first.is_a?(TkDEF) extract_method_details.last.map {|param| param.first } else tokens = statement.tokens[1..-1] tokval_list(tokens, :attr, :identifier, TkId).map do |value| value.to_s end end end |
#caller_method ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/yard/handlers/ruby/legacy/base.rb', line 54 def caller_method if statement.tokens.first.is_a?(TkIDENTIFIER) statement.tokens.first.text elsif statement.tokens.first.is_a?(TkDEF) extract_method_details.first else nil end end |
#parse_block(opts = {}) ⇒ Object
Parses a statement’s block with a set of state values. If the statement has no block, nothing happens. A description of state values can be found at Base#push_state
34 35 36 37 38 39 40 41 |
# File 'lib/yard/handlers/ruby/legacy/base.rb', line 34 def parse_block(opts = {}) push_state(opts) do if statement.block blk = Parser::Ruby::Legacy::StatementList.new(statement.block) parser.process(blk) end end end |