Sha256: ae4eb47c7b2c5ff5c9bbbc004b28126e148f7782408b1ce23fd29414dccf2d44

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

module Rbs2ts
  module Converter
    module Declarations
      class Declarations
        def initialize(decls)
          @decls = decls
        end
    
        def to_ts
          decls_ts = @decls.map do |d|
            case d
            when ::RBS::AST::Declarations::Alias then
              Converter::Declarations::Alias.new(d).to_ts
            end
          end

          decls_ts.join("\n\n")
        end
      end
  
      # reference: RBS::AST::Declarations
      class Base
        def initialize(declaration)
          @declaration = declaration
        end
    
        def to_ts
          ''
        end

        def name
          declaration.name.to_s.gsub(/:/, '')
        end
    
        private
    
        attr_reader :declaration
      end
  
      class Class < Base
      end
  
      class Module < Base
      end
  
      class Interface < Base
      end
  
      class Alias < Base
        def to_ts
          "type #{name} = #{Converter::Types::Resolver.to_ts(declaration.type)};"
        end
      end
  
      class Constant < Base
      end
  
      class Global < Base
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rbs2ts-1.0.0.pre.alpha.3 lib/rbs2ts/converter/declarations.rb