lib/tapioca/static/symbol_loader.rb in tapioca-0.10.5 vs lib/tapioca/static/symbol_loader.rb in tapioca-0.11.0

- old
+ new

@@ -39,10 +39,24 @@ sig { params(gem: Gemfile::GemSpec).returns(T::Set[String]) } def gem_symbols(gem) symbols_from_paths(gem.files) end + sig { params(paths: T::Array[Pathname]).returns(T::Set[String]) } + def symbols_from_paths(paths) + output = Tempfile.create("sorbet") do |file| + file.write(Array(paths).join("\n")) + file.flush + + symbol_table_json_from("@#{file.path.shellescape}") + end + + return Set.new if output.empty? + + SymbolTableParser.parse_json(output) + end + private sig { returns(T::Array[T.class_of(Rails::Engine)]) } def engines @engines = T.let(@engines, T.nilable(T::Array[T.class_of(Rails::Engine)])) @@ -56,23 +70,9 @@ end sig { params(input: String, table_type: String).returns(String) } def symbol_table_json_from(input, table_type: "symbol-table-json") sorbet("--no-config", "--quiet", "--print=#{table_type}", input).out - end - - sig { params(paths: T::Array[Pathname]).returns(T::Set[String]) } - def symbols_from_paths(paths) - output = Tempfile.create("sorbet") do |file| - file.write(Array(paths).join("\n")) - file.flush - - symbol_table_json_from("@#{file.path.shellescape}") - end - - return Set.new if output.empty? - - SymbolTableParser.parse_json(output) end end end end end