Method: YARD::Handlers::Ruby::MixinHandler#process_mixin

Defined in:
lib/yard/handlers/ruby/mixin_handler.rb

#process_mixin(mixin) ⇒ Object (protected)


23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/yard/handlers/ruby/mixin_handler.rb', line 23

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 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