Class: RBS::Source::Ruby
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | lib/rbs/source.rb |
Class Method Summary
Instance Attribute Summary
- #buffer readonly
- #declarations readonly
- #diagnostics readonly
- #prism_result readonly
Instance Method Summary
Constructor Details
.new(buffer, prism, declarations, diagnostics) ⇒ Ruby
# File 'lib/rbs/source.rb', line 58
def initialize(buffer, prism, declarations, diagnostics) @buffer = buffer @prism_result = prism @declarations = declarations @diagnostics = diagnostics end
Instance Attribute Details
#buffer (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 53
attr_reader :buffer
#declarations (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 55
attr_reader :declarations
#diagnostics (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 56
attr_reader :diagnostics
#prism_result (readonly)
[ GitHub ]# File 'lib/rbs/source.rb', line 54
attr_reader :prism_result
Instance Method Details
#each_declaration_type_name(names, decl, &block)
[ GitHub ]# File 'lib/rbs/source.rb', line 76
def each_declaration_type_name(names, decl, &block) case decl when AST::Ruby::Declarations::ClassDecl decl.each_decl do |d| each_declaration_type_name(names, d, &block) end type_name = decl.class_name when AST::Ruby::Declarations::ModuleDecl decl.each_decl do |d| each_declaration_type_name(names, d, &block) end type_name = decl.module_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 65
def each_type_name(&block) if block names = Set[] #: Set[TypeName] declarations.each do |decl| each_declaration_type_name(names, decl, &block) end else enum_for :each_type_name end end