Class: RBS::Source::RBS
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | lib/rbs/source.rb |
Class Method Summary
- .new(buffer, directives, decls) ⇒ RBS constructor
Instance Attribute Summary
- #buffer readonly
- #declarations readonly
- #directives readonly
Instance Method Summary
Constructor Details
.new(buffer, directives, decls) ⇒ RBS
# File 'lib/rbs/source.rb', line 8
def initialize(buffer, directives, decls) @buffer = buffer @directives = directives @declarations = decls end
Instance Attribute Details
#buffer (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 6
attr_reader :buffer, :directives, :declarations
#declarations (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 6
attr_reader :buffer, :directives, :declarations
#directives (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 6
attr_reader :buffer, :directives, :declarations
Instance Method Details
#each_declaration_type_name(names, decl, &block)
[ GitHub ]# File 'lib/rbs/source.rb', line 25
def each_declaration_type_name(names, decl, &block) case decl when AST::Declarations::Class decl.each_decl { each_declaration_type_name(names, _1, &block) } type_name = decl.name when AST::Declarations::Module decl.each_decl { each_declaration_type_name(names, _1, &block) } type_name = decl.name when AST::Declarations::Interface type_name = decl.name when AST::Declarations::TypeAlias type_name = decl.name when AST::Declarations::ModuleAlias type_name = decl.new_name when AST::Declarations::ClassAlias type_name = decl.new_name end if type_name unless names.include?(type_name) yield type_name names << type_name end end end
#each_type_name(&block)
[ GitHub ]# File 'lib/rbs/source.rb', line 14
def each_type_name(&block) if block set = Set[] #: Set[TypeName] declarations.each do |decl| each_declaration_type_name(set, decl, &block) end else enum_for :each_type_name end end