inreplace: support for audit arg in non-block form
Provides feature parity between the block and non-block forms of inreplace by creating a four-argument version of the non-block form, where the fourth argument is an optional Boolean value, defaulting to true, which specifies whether a failed inreplace should cause an InreplaceError error to be raised. The fourth argument is passed along to StringInreplaceExtension#gsub!, which already supports an optional audit_result argument. This resolves the Catch-22 that single replacements aren't permissible in the block form (in that they now cause `brew audit` to complain), but the audit_result argument is not available in the non-block form. Closes #552. Signed-off-by: ilovezfs <ilovezfs@icloud.com>
This commit is contained in:
parent
d7ee541293
commit
45bfd2b94a
@ -15,7 +15,7 @@ module Utils
|
|||||||
# HOMEBREW_PREFIX is available in the embedded patch.
|
# HOMEBREW_PREFIX is available in the embedded patch.
|
||||||
# inreplace supports regular expressions.
|
# inreplace supports regular expressions.
|
||||||
# <pre>inreplace "somefile.cfg", /look[for]what?/, "replace by #{bin}/tool"</pre>
|
# <pre>inreplace "somefile.cfg", /look[for]what?/, "replace by #{bin}/tool"</pre>
|
||||||
def inreplace(paths, before = nil, after = nil)
|
def inreplace(paths, before = nil, after = nil, audit_result = true)
|
||||||
errors = {}
|
errors = {}
|
||||||
|
|
||||||
Array(paths).each do |path|
|
Array(paths).each do |path|
|
||||||
@ -25,7 +25,7 @@ module Utils
|
|||||||
yield s
|
yield s
|
||||||
else
|
else
|
||||||
after = after.to_s if Symbol === after
|
after = after.to_s if Symbol === after
|
||||||
s.gsub!(before, after)
|
s.gsub!(before, after, audit_result)
|
||||||
end
|
end
|
||||||
|
|
||||||
errors[path] = s.errors if s.errors.any?
|
errors[path] = s.errors if s.errors.any?
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user