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, 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.
15 16 17 18 |
# File 'utils/string_inreplace_extension.rb', line 15 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.
9 10 11 |
# File 'utils/string_inreplace_extension.rb', line 9 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.
12 13 14 |
# File 'utils/string_inreplace_extension.rb', line 12 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.
49 50 51 52 53 |
# File 'utils/string_inreplace_extension.rb', line 49 def change_make_var!(flag, new_value) return if gsub!(/^#{Regexp.escape(flag)}[ \t]*[\\?+:!]?=[ \t]*((?:.*\\\n)*.*)$/, "#{flag}=#{new_value}", false) errors << "expected to change #{flag.inspect} to #{new_value.inspect}" end |
#get_make_var(flag) ⇒ String
Finds the specified variable.
72 73 74 |
# File 'utils/string_inreplace_extension.rb', line 72 def get_make_var(flag) T.must(inreplace_string[/^#{Regexp.escape(flag)}[ \t]*[\\?+:!]?=[ \t]*((?:.*\\\n)*.*)$/, 1]) end |
#gsub!(before, after, audit_result = true) ⇒ String?
Same as String#gsub!
, but warns if nothing was replaced.
37 38 39 40 41 42 |
# File 'utils/string_inreplace_extension.rb', line 37 def gsub!(before, after, audit_result = true) # rubocop:disable Style/OptionalBooleanParameter 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.
59 60 61 62 63 64 65 66 |
# File 'utils/string_inreplace_extension.rb', line 59 def remove_make_var!(flags) Array(flags).each do |flag| # Also remove trailing \n, if present. unless gsub!(/^#{Regexp.escape(flag)}[ \t]*[\\?+:!]?=(?:.*\\\n)*.*$\n?/, "", false) errors << "expected to remove #{flag.inspect}" end end end |
#sub!(before, after) ⇒ String?
Same as String#sub!
, but warns if nothing was replaced.
24 25 26 27 28 |
# File 'utils/string_inreplace_extension.rb', line 24 def sub!(before, after) result = inreplace_string.sub!(before, after) errors << "expected replacement of #{before.inspect} with #{after.inspect}" unless result result end |