class Sorbet::Private::GemGeneratorTracepoint::TracepointSerializer
def serialize(output_dir)
def serialize(output_dir) gem_class_defs = preprocess(@files) FileUtils.mkdir_p(output_dir) unless gem_class_defs.empty? gem_class_defs.each do |gem, klass_ids| File.open("#{File.join(output_dir, gem[:gem])}.rbi", 'w') do |f| f.write(HEADER) f.write("# ou would like to make changes to this file, great! Please create the gem's shim here: tps://github.com/sorbet/sorbet-typed/new/master?filename=lib/#{gem[:gem]}/all/#{gem[:gem]}.rbi f.write("# #{gem[:gem]}-#{gem[:version]}\n\n") klass_ids.each do |klass_id, class_def| klass = class_def.klass f.write("#{Sorbet::Private::RealStdlib.real_is_a?(klass, Class) ? 'class' : 'module'} #{class_name(klass)}") f.write(" < #{class_name(klass.superclass)}") if Sorbet::Private::RealStdlib.real_is_a?(klass, Class) && ![Object, nil].include?(klass.superclass) f.write("\n") rows = class_def.defs.map do |item| case item[:type] when :method if !valid_method_name?(item[:method]) # warn("Invalid method name: #{klass}.#{item[:method]}") next end if BAD_METHODS.include?([gem[:gem], class_name(klass), item[:method]]) next end begin method = item[:singleton] ? Sorbet::Private::RealStdlib.real_method(klass, item[:method]) : klass.instance_method(item[:method]) "#{generate_method(method, !item[:singleton])}" rescue NameError end when :include, :extend name = class_name(item[item[:type]]) " #{item[:type]} #{name}" end end rows = rows.compact.sort f.write(rows.join("\n")) f.write("\n") if !rows.empty? f.write("end\n") end end end end