class RBS::DefinitionBuilder::AncestorBuilder::OneAncestors
OneAncestors represents a list of direct ancestors of a type name
Direct ancestors is defined as follows:
-
Super class is a direct ancestor
-
Self type constraints are direct ancestors
-
Mixin modules are direct ancestors
-
Mixin interfaces are direct ancestors
The optional attributes are defined by the type of the ancestors object, one of the following five groups:
-
Instance of a class – with
super_class,included_modules,included_interfaces, andprepended_modules -
Instance of a module – with
self_types,included_modules,included_interfaces, andprepended_modules -
Singletonof a class or module – withsuper_class,extended_modules, andextended_interfaces -
Interface – with
included_interfaces
Attributes
Array[Definition::Ancestor::Instance]?
Returns the list of extended interfaces
-
Returns
nilif it is an interface or it is an instance.
Array[Definition::Ancestor::Instance]?
Returns the list of extended modules
-
Returns
nilif it is an interface or it is an instance.
Array[Definition::Ancestor::Instance]?
Returns the list of included interfaces
-
Returns
nilit it is a singleton.
Array[Definition::Ancestor::Instance]?
Returns the list of included modules
-
Returns
nilif it is an interface or it is a singleton.
Array[Definition::Ancestor::Instance]?
Returns the list of prepended modules
-
Returns
nilif it is an interface or it is a singleton.
Array[Definition::Ancestor::Instance]?
Returns list of self type constraints of a module
-
Returns
nilif it is not a module instance.
Definition::Ancestor::t?
Returns super_class ancestor if specified
-
Always
nilif this is not a class.
Public Class Methods
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 94 def self.class_instance(type_name:, params:, super_class:) new( type_name: type_name, params: params, super_class: super_class, self_types: nil, included_modules: [], included_interfaces: [], prepended_modules: [], extended_modules: nil, extended_interfaces: nil ) end
Returns a OneAncestors object for class instance
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 136 def self.interface(type_name:, params:) new( type_name: type_name, params: params, self_types: nil, included_modules: nil, included_interfaces: [], prepended_modules: nil, super_class: nil, extended_modules: nil, extended_interfaces: nil ) end
Returns a OneAncestors object for interface
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 122 def self.module_instance(type_name:, params:) new( type_name: type_name, params: params, self_types: [], included_modules: [], included_interfaces: [], prepended_modules: [], super_class: nil, extended_modules: nil, extended_interfaces: nil ) end
Returns a OneAncestors object for module instance
(type_name: TypeName, params: Array[Symbol]?, super_class: Definition::Ancestor::t?, self_types: Array[Definition::Ancestor::Instance]?, included_modules: Array[Definition::Ancestor::Instance]?, included_interfaces: Array[Definition::Ancestor::Instance]?, prepended_modules: Array[Definition::Ancestor::Instance]?, extended_modules: Array[Definition::Ancestor::Instance]?, extended_interfaces: Array[Definition::Ancestor::Instance]?) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 17 def initialize(type_name:, params:, super_class:, self_types:, included_modules:, included_interfaces:, prepended_modules:, extended_modules:, extended_interfaces:) @type_name = type_name @params = params @super_class = super_class @self_types = self_types @included_modules = included_modules @included_interfaces = included_interfaces @prepended_modules = prepended_modules @extended_modules = extended_modules @extended_interfaces = extended_interfaces end
(type_name: TypeName, super_class: Definition::Ancestor::t) → instance
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 108 def self.singleton(type_name:, super_class:) new( type_name: type_name, params: nil, super_class: super_class, self_types: nil, included_modules: nil, included_interfaces: nil, prepended_modules: nil, extended_modules: [], extended_interfaces: [] ) end
Returns a OneAncestors object for class/module singleton
Public Instance Methods
() { (Definition::Ancestor::t) → void } → void
() → Enumerator[Definition::Ancestor::t, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 29 def each_ancestor(&block) if block if s = super_class yield s end each_self_type(&block) each_included_module(&block) each_included_interface(&block) each_prepended_module(&block) each_extended_module(&block) each_extended_interface(&block) else enum_for :each_ancestor end end
() { (Definition::Ancestor::Instance) → void } → void
() → Enumerator[Definition::Ancestor::Instance, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 86 def each_extended_interface(&block) if block extended_interfaces&.each(&block) else enum_for :each_extended_interface end end
() { (Definition::Ancestor::Instance) → void } → void
() → Enumerator[Definition::Ancestor::Instance, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 78 def each_extended_module(&block) if block extended_modules&.each(&block) else enum_for :each_extended_module end end
() { (Definition::Ancestor::Instance) → void } → void
() → Enumerator[Definition::Ancestor::Instance, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 62 def each_included_interface(&block) if block included_interfaces&.each(&block) else enum_for :each_included_interface end end
() { (Definition::Ancestor::Instance) → void } → void
() → Enumerator[Definition::Ancestor::Instance, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 54 def each_included_module(&block) if block included_modules&.each(&block) else enum_for :each_included_module end end
() { (Definition::Ancestor::Instance) → void } → void
() → Enumerator[Definition::Ancestor::Instance, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 70 def each_prepended_module(&block) if block prepended_modules&.each(&block) else enum_for :each_prepended_module end end
() { (Definition::Ancestor::Instance) → void } → void
() → Enumerator[Definition::Ancestor::Instance, void]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/definition_builder/ancestor_builder.rb, line 46 def each_self_type(&block) if block self_types&.each(&block) else enum_for :each_self_type end end