class YARD::Handlers::Ruby::MixinHandler

Handles the 'include' statement to mixin a module in the instance scope

Protected Instance Methods

process_mixin(mixin) click to toggle source
# File lib/yard/handlers/ruby/mixin_handler.rb, line 24
def process_mixin(mixin)
  raise YARD::Parser::UndocumentableError unless mixin.ref?
  raise YARD::Parser::UndocumentableError if mixin.first.type == :ident

  case obj = Proxy.new(namespace, mixin.source)
  when ConstantObject # If a constant is included, use its value as the real object
    obj = Proxy.new(namespace, obj.value, :module)
  else
    obj = Proxy.new(namespace, mixin.source, :module)
  end

  rec = recipient(mixin)
  return if rec.nil? || rec.mixins(scope).include?(obj)
  rec.mixins(scope).unshift(obj)
end
recipient(mixin) click to toggle source
# File lib/yard/handlers/ruby/mixin_handler.rb, line 40
def recipient(mixin)
  if statement[0].type == :var_ref && statement[0][0] != s(:kw, "self")
    statement[0][0].type == :const ?
      Proxy.new(namespace, statement.namespace.source) :
      nil
  else
    namespace
  end
end