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/gems/**/*.rbi'
- 'Homebrew/sorbet/rbi/hidden-definitions/**/*.rbi' - 'Homebrew/sorbet/rbi/hidden-definitions/**/*.rbi'
- 'Homebrew/sorbet/rbi/todo.rbi' - 'Homebrew/sorbet/rbi/todo.rbi'
- 'Homebrew/sorbet/rbi/upstream.rbi'
- 'Homebrew/bin/*' - 'Homebrew/bin/*'
- 'Homebrew/vendor/**/*' - 'Homebrew/vendor/**/*'

View File

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