brew/Library/Homebrew/extend/pathname/write_mkpath_extension.rb
2025-08-25 04:08:42 -04:00

35 lines
1.1 KiB
Ruby

# typed: strict
# frozen_string_literal: true
module WriteMkpathExtension
extend T::Helpers
requires_ancestor { Pathname }
# Source for `sig`: https://github.com/sorbet/sorbet/blob/b4092efe0a4489c28aff7e1ead6ee8a0179dc8b3/rbi/stdlib/pathname.rbi#L1392-L1411
sig {
params(
content: Object,
offset: Integer,
external_encoding: T.any(String, Encoding),
internal_encoding: T.any(String, Encoding),
encoding: T.any(String, Encoding),
textmode: BasicObject,
binmode: BasicObject,
autoclose: BasicObject,
mode: String,
perm: Integer,
).returns(Integer)
}
def write(content, offset = T.unsafe(nil), external_encoding: T.unsafe(nil), internal_encoding: T.unsafe(nil),
encoding: T.unsafe(nil), textmode: T.unsafe(nil), binmode: T.unsafe(nil), autoclose: T.unsafe(nil),
mode: T.unsafe(nil), perm: T.unsafe(nil))
T.bind(self, Pathname)
raise "Will not overwrite #{self}" if exist? && !offset && !mode&.match?(/^a\+?$/)
dirname.mkpath
super
end
end