Add type signatures for Caskroom.

This commit is contained in:
Markus Reiter 2020-11-17 03:05:33 +01:00
parent 181baaafb0
commit 64a0e9a721
3 changed files with 15 additions and 7 deletions

View File

@ -18,6 +18,7 @@ AllCops:
- 'Homebrew/sorbet/rbi/gems/**/*.rbi'
- 'Homebrew/sorbet/rbi/hidden-definitions/**/*.rbi'
- 'Homebrew/sorbet/rbi/todo.rbi'
- 'Homebrew/sorbet/rbi/upstream.rbi'
- 'Homebrew/bin/*'
- 'Homebrew/vendor/**/*'

View File

@ -1,4 +1,4 @@
# typed: false
# typed: true
# frozen_string_literal: true
require "utils/user"
@ -10,13 +10,13 @@ module Cask
module Caskroom
extend T::Sig
module_function
def path
sig { returns(Pathname) }
def self.path
@path ||= HOMEBREW_PREFIX.join("Caskroom")
end
def ensure_caskroom_exists
sig { void }
def self.ensure_caskroom_exists
return if path.exist?
sudo = !path.parent.writable?
@ -32,8 +32,8 @@ module Cask
SystemCommand.run("/usr/bin/chgrp", args: ["admin", path], sudo: sudo)
end
sig { params(config: Config).returns(T::Array[Cask]) }
def casks(config: nil)
sig { params(config: T.nilable(Config)).returns(T::Array[Cask]) }
def self.casks(config: nil)
return [] unless path.exist?
Pathname.glob(path.join("*")).sort.select(&:directory?).map do |path|

View File

@ -0,0 +1,7 @@
# typed: strict
class Pathname
# https://github.com/sorbet/sorbet/pull/3676
sig { params(p1: T.any(String, Pathname), p2: String).returns(T::Array[Pathname]) }
def self.glob(p1, p2 = T.unsafe(nil)); end
end