Class: RBS::DefinitionBuilder::AncestorBuilder::OneAncestors
- Inherits:
-
Object
- Object
- RBS::DefinitionBuilder::AncestorBuilder::OneAncestors
- Defined in:
- sig/ancestor_builder.rbs,
lib/rbs/definition_builder/ancestor_builder.rb
Overview
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, and prepended_modules
- Instance of a module -- with self_types, included_modules, included_interfaces, and prepended_modules
- Singleton of a class or module -- with super_class, extended_modules, and extended_interfaces
- Interface -- with included_interfaces
Instance Attribute Summary collapse
-
#extended_interfaces ⇒ Array[Definition::Ancestor::Instance]?
readonly
Returns the list of extended interfaces.
-
#extended_modules ⇒ Array[Definition::Ancestor::Instance]?
readonly
Returns the list of extended modules.
-
#included_interfaces ⇒ Array[Definition::Ancestor::Instance]?
readonly
Returns the list of included interfaces.
-
#included_modules ⇒ Array[Definition::Ancestor::Instance]?
readonly
Returns the list of included modules.
-
#params ⇒ Array[Symbol]?
readonly
Returns the value of attribute params.
-
#prepended_modules ⇒ Array[Definition::Ancestor::Instance]?
readonly
Returns the list of prepended modules.
-
#self_types ⇒ Array[Definition::Ancestor::Instance]?
readonly
Returns list of self type constraints of a module.
-
#super_class ⇒ Definition::Ancestor::t?
readonly
Returns super_class ancestor if specified.
-
#type_name ⇒ TypeName
readonly
Returns the value of attribute type_name.
Class Method Summary collapse
-
.class_instance(type_name:, params:, super_class:) ⇒ instance
Returns a OneAncestors object for class instance.
-
.interface(type_name:, params:) ⇒ instance
Returns a OneAncestors object for interface.
-
.module_instance(type_name:, params:) ⇒ instance
Returns a OneAncestors object for module instance.
-
.singleton(type_name:, super_class:) ⇒ instance
Returns a OneAncestors object for class/module singleton.
Instance Method Summary collapse
- #each_ancestor {|arg0| ... } ⇒ Object
- #each_extended_interface {|arg0| ... } ⇒ Object
- #each_extended_module {|arg0| ... } ⇒ Object
- #each_included_interface {|arg0| ... } ⇒ Object
- #each_included_module {|arg0| ... } ⇒ Object
- #each_prepended_module {|arg0| ... } ⇒ Object
- #each_self_type {|arg0| ... } ⇒ Object
-
#initialize(type_name:, params:, super_class:, self_types:, included_modules:, included_interfaces:, prepended_modules:, extended_modules:, extended_interfaces:) ⇒ OneAncestors
constructor
A new instance of OneAncestors.
Constructor Details
#initialize(type_name:, params:, super_class:, self_types:, included_modules:, included_interfaces:, prepended_modules:, extended_modules:, extended_interfaces:) ⇒ OneAncestors
Returns a new instance of OneAncestors.
17 18 19 20 21 22 23 24 25 26 27 |
# File '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 |
Instance Attribute Details
#extended_interfaces ⇒ Array[Definition::Ancestor::Instance]? (readonly)
Returns the list of extended interfaces
- Returns
nilif it is an interface or it is an instance.
66 67 68 |
# File 'sig/ancestor_builder.rbs', line 66 def extended_interfaces @extended_interfaces end |
#extended_modules ⇒ Array[Definition::Ancestor::Instance]? (readonly)
Returns the list of extended modules
- Returns
nilif it is an interface or it is an instance.
60 61 62 |
# File 'sig/ancestor_builder.rbs', line 60 def extended_modules @extended_modules end |
#included_interfaces ⇒ Array[Definition::Ancestor::Instance]? (readonly)
Returns the list of included interfaces
- Returns
nilit it is a singleton.
48 49 50 |
# File 'sig/ancestor_builder.rbs', line 48 def included_interfaces @included_interfaces end |
#included_modules ⇒ Array[Definition::Ancestor::Instance]? (readonly)
Returns the list of included modules
- Returns
nilif it is an interface or it is a singleton.
42 43 44 |
# File 'sig/ancestor_builder.rbs', line 42 def included_modules @included_modules end |
#params ⇒ Array[Symbol]? (readonly)
Returns the value of attribute params.
8 9 10 |
# File 'lib/rbs/definition_builder/ancestor_builder.rb', line 8 def params @params end |
#prepended_modules ⇒ Array[Definition::Ancestor::Instance]? (readonly)
Returns the list of prepended modules
- Returns
nilif it is an interface or it is a singleton.
54 55 56 |
# File 'sig/ancestor_builder.rbs', line 54 def prepended_modules @prepended_modules end |
#self_types ⇒ Array[Definition::Ancestor::Instance]? (readonly)
Returns list of self type constraints of a module
- Returns
nilif it is not a module instance.
36 37 38 |
# File 'sig/ancestor_builder.rbs', line 36 def self_types @self_types end |
#super_class ⇒ Definition::Ancestor::t? (readonly)
Returns super_class ancestor if specified
- Always
nilif this is not a class.
30 31 32 |
# File 'sig/ancestor_builder.rbs', line 30 def super_class @super_class end |
#type_name ⇒ TypeName (readonly)
Returns the value of attribute type_name.
7 8 9 |
# File 'lib/rbs/definition_builder/ancestor_builder.rb', line 7 def type_name @type_name end |
Class Method Details
.class_instance(type_name:, params:, super_class:) ⇒ instance
Returns a OneAncestors object for class instance
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'sig/ancestor_builder.rbs', line 82 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 |
.interface(type_name:, params:) ⇒ instance
Returns a OneAncestors object for interface
91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'sig/ancestor_builder.rbs', line 91 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 |
.module_instance(type_name:, params:) ⇒ instance
Returns a OneAncestors object for module instance
85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'sig/ancestor_builder.rbs', line 85 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 |
.singleton(type_name:, super_class:) ⇒ instance
Returns a OneAncestors object for class/module singleton
88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'sig/ancestor_builder.rbs', line 88 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 |
Instance Method Details
#each_ancestor ⇒ void #each_ancestor ⇒ Enumerator[Definition::Ancestor::t, void]
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File '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 |
#each_extended_interface ⇒ void #each_extended_interface ⇒ Enumerator[Definition::Ancestor::Instance, void]
86 87 88 89 90 91 92 |
# File '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 |
#each_extended_module ⇒ void #each_extended_module ⇒ Enumerator[Definition::Ancestor::Instance, void]
78 79 80 81 82 83 84 |
# File '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 |
#each_included_interface ⇒ void #each_included_interface ⇒ Enumerator[Definition::Ancestor::Instance, void]
62 63 64 65 66 67 68 |
# File '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 |
#each_included_module ⇒ void #each_included_module ⇒ Enumerator[Definition::Ancestor::Instance, void]
54 55 56 57 58 59 60 |
# File '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 |
#each_prepended_module ⇒ void #each_prepended_module ⇒ Enumerator[Definition::Ancestor::Instance, void]
70 71 72 73 74 75 76 |
# File '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 |
#each_self_type ⇒ void #each_self_type ⇒ Enumerator[Definition::Ancestor::Instance, void]
46 47 48 49 50 51 52 |
# File '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 |