Sha256: 4ed0cba5310cb8dd3a7f07af93f340223b577af9d8675335a6d761efab2c7fda
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
# typed: strict # frozen_string_literal: true module YARDSorbet module Handlers # Extends any modules included via `mixes_in_class_methods` # @see https://sorbet.org/docs/abstract#interfaces-and-the-included-hook # Sorbet `mixes_in_class_methods` documentation class IncludeHandler < YARD::Handlers::Ruby::Base extend T::Sig handles method_call(:include) namespace_only sig { void } def process statement.parameters(false).each do |mixin| obj = YARD::CodeObjects::Proxy.new(namespace, mixin.source) class_methods_namespace = MixesInClassMethodsHandler.mixed_in_class_methods(obj.to_s) next unless class_methods_namespace included_in.mixins(:class) << YARD::CodeObjects::Proxy.new(obj, class_methods_namespace) end end private # @return the namespace object that is including the module sig { returns(YARD::CodeObjects::NamespaceObject) } def included_in statement.namespace ? YARD::CodeObjects::Proxy.new(namespace, statement.namespace.source) : namespace end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
yard-sorbet-0.7.0 | lib/yard-sorbet/handlers/include_handler.rb |
yard-sorbet-0.6.1 | lib/yard-sorbet/handlers/include_handler.rb |