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 Utils::Inreplace.inreplace function.
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, audit_result: true) ⇒ 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, audit_result: true) ⇒ 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, audit_result: true) result = inreplace_string.sub!(before, after) errors << "expected replacement of #{before.inspect} with #{after.inspect}" if audit_result && result.nil? result end |