Class: StringInreplaceExtension Private
- Defined in:
- utils/string_inreplace_extension.rb
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
Used by the inreplace
function (in utils.rb
).
Instance Attribute Summary collapse
- #errors ⇒ Array<String> private
- #inreplace_string ⇒ String private
Instance Method Summary collapse
-
#change_make_var!(flag, new_value) ⇒ void
Looks for Makefile style variable definitions and replaces the value with "new_value", or removes the definition entirely.
-
#get_make_var(flag) ⇒ String
Finds the specified variable.
-
#gsub!(before, after, old_audit_result = nil, audit_result: true) ⇒ String?
Same as
String#gsub!
, but warns if nothing was replaced. - #initialize(string) ⇒ void constructor private
-
#remove_make_var!(flags) ⇒ void
Removes variable assignments completely.
-
#sub!(before, after) ⇒ String?
Same as
String#sub!
, but warns if nothing was replaced.
Constructor Details
#initialize(string) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
13 14 15 16 |
# File 'utils/string_inreplace_extension.rb', line 13 def initialize(string) @inreplace_string = string @errors = T.let([], T::Array[String]) end |
Instance Attribute Details
#errors ⇒ Array<String>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
7 8 9 |
# File 'utils/string_inreplace_extension.rb', line 7 def errors @errors end |
#inreplace_string ⇒ String
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
10 11 12 |
# File 'utils/string_inreplace_extension.rb', line 10 def inreplace_string @inreplace_string end |
Instance Method Details
#change_make_var!(flag, new_value) ⇒ void
This method returns an undefined value.
Looks for Makefile style variable definitions and replaces the value with "new_value", or removes the definition entirely.
57 58 59 60 61 62 63 |
# File 'utils/string_inreplace_extension.rb', line 57 def change_make_var!(flag, new_value) return if gsub!(/^#{Regexp.escape(flag)}[ \t]*[\\?+:!]?=[ \t]*((?:.*\\\n)*.*)$/, "#{flag}=#{new_value}", audit_result: false) errors << "expected to change #{flag.inspect} to #{new_value.inspect}" end |
#get_make_var(flag) ⇒ String
Finds the specified variable.
84 85 86 |
# File 'utils/string_inreplace_extension.rb', line 84 def get_make_var(flag) T.must(inreplace_string[/^#{Regexp.escape(flag)}[ \t]*[\\?+:!]?=[ \t]*((?:.*\\\n)*.*)$/, 1]) end |
#gsub!(before, after, old_audit_result = nil, audit_result: true) ⇒ String?
Same as String#gsub!
, but warns if nothing was replaced.
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'utils/string_inreplace_extension.rb', line 39 def gsub!(before, after, old_audit_result = nil, audit_result: true) # NOTE: must check for `#nil?` and not `#blank?`, or else `old_audit_result = false` will not call `odeprecated`. unless old_audit_result.nil? odeprecated "gsub!(before, after, #{old_audit_result})", "gsub!(before, after, audit_result: #{old_audit_result})" audit_result = old_audit_result end before = before.to_s if before.is_a?(Pathname) result = inreplace_string.gsub!(before, after.to_s) errors << "expected replacement of #{before.inspect} with #{after.inspect}" if audit_result && result.nil? result end |
#remove_make_var!(flags) ⇒ void
This method returns an undefined value.
Removes variable assignments completely.
69 70 71 72 73 74 75 76 77 78 |
# File 'utils/string_inreplace_extension.rb', line 69 def remove_make_var!(flags) Array(flags).each do |flag| # Also remove trailing \n, if present. next if gsub!(/^#{Regexp.escape(flag)}[ \t]*[\\?+:!]?=(?:.*\\\n)*.*$\n?/, "", audit_result: false) errors << "expected to remove #{flag.inspect}" end end |
#sub!(before, after) ⇒ String?
Same as String#sub!
, but warns if nothing was replaced.
22 23 24 25 26 |
# File 'utils/string_inreplace_extension.rb', line 22 def sub!(before, after) result = inreplace_string.sub!(before, after) errors << "expected replacement of #{before.inspect} with #{after.inspect}" unless result result end |