Class: YARD::Handlers::Ruby::MixinHandler
- Defined in:
- lib/yard/handlers/ruby/mixin_handler.rb
Overview
Handles the ‘include’ statement to mixin a module in the instance scope
Direct Known Subclasses
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
Instance Attribute Summary
Attributes inherited from Base
#namespace, #owner, #parser, #scope, #statement, #visibility
Instance Method Summary collapse
- #process_mixin(mixin) ⇒ Object protected
Methods inherited from Base
handles?, meta_type, method_call, #parse_block
Methods included from Parser::Ruby
Methods inherited from Base
clear_subclasses, #ensure_loaded!, handlers, handles, handles?, #initialize, namespace_only, namespace_only?, #parse_block, process, #process, #push_state, #register, subclasses
Constructor Details
This class inherits a constructor from YARD::Handlers::Base
Instance Method Details
#process_mixin(mixin) ⇒ Object (protected)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/yard/handlers/ruby/mixin_handler.rb', line 12 def process_mixin(mixin) unless mixin.ref? raise YARD::Parser::UndocumentableError, "mixin #{mixin.source} for class #{namespace.path}" end case obj = Proxy.new(namespace, mixin.source) when Proxy obj.type = :module when ConstantObject # If a constant is included, use its value as the real object obj = Proxy.new(namespace, obj.value) end namespace.mixins(scope).unshift(obj) unless namespace.mixins(scope).include?(obj) end |