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