Merge pull request #14973 from dduugg/kernel-cleanup
Minor Kernel cleanup
This commit is contained in:
commit
0d5e291fe1
@ -351,16 +351,6 @@ module Kernel
|
||||
# rubocop:enable Style/GlobalVars
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
def capture_stderr
|
||||
old = $stderr
|
||||
$stderr = StringIO.new
|
||||
yield
|
||||
$stderr.string
|
||||
ensure
|
||||
$stderr = old
|
||||
end
|
||||
|
||||
def redirect_stdout(file)
|
||||
out = $stdout.dup
|
||||
$stdout.reopen(file)
|
||||
@ -428,17 +418,6 @@ module Kernel
|
||||
@paths ||= ORIGINAL_PATHS.uniq.map(&:to_s)
|
||||
end
|
||||
|
||||
def parse_author!(author)
|
||||
match_data = /^(?<name>[^<]+?)[ \t]*<(?<email>[^>]+?)>$/.match(author)
|
||||
if match_data
|
||||
name = match_data[:name]
|
||||
email = match_data[:email]
|
||||
end
|
||||
raise UsageError, "Unable to parse name and email." if name.blank? && email.blank?
|
||||
|
||||
{ name: name, email: email }
|
||||
end
|
||||
|
||||
def disk_usage_readable(size_in_bytes)
|
||||
if size_in_bytes >= 1_073_741_824
|
||||
size = size_in_bytes.to_f / 1_073_741_824
|
||||
|
@ -182,14 +182,6 @@ describe "globally-scoped helper methods" do
|
||||
expect(which_editor).to eq("vemate -w")
|
||||
end
|
||||
|
||||
specify "#capture_stderr" do
|
||||
err = capture_stderr do
|
||||
$stderr.print "test"
|
||||
end
|
||||
|
||||
expect(err).to eq("test")
|
||||
end
|
||||
|
||||
describe "#pretty_duration" do
|
||||
it "converts seconds to a human-readable string" do
|
||||
expect(pretty_duration(1)).to eq("1 second")
|
||||
@ -200,19 +192,6 @@ describe "globally-scoped helper methods" do
|
||||
end
|
||||
end
|
||||
|
||||
specify "#parse_author!" do
|
||||
parse_error_msg = /Unable to parse name and email/
|
||||
|
||||
expect(parse_author!("John Doe <john.doe@example.com>"))
|
||||
.to eq({ name: "John Doe", email: "john.doe@example.com" })
|
||||
expect { parse_author!("") }
|
||||
.to raise_error(parse_error_msg)
|
||||
expect { parse_author!("John Doe") }
|
||||
.to raise_error(parse_error_msg)
|
||||
expect { parse_author!("<john.doe@example.com>") }
|
||||
.to raise_error(parse_error_msg)
|
||||
end
|
||||
|
||||
specify "#disk_usage_readable" do
|
||||
expect(disk_usage_readable(1)).to eq("1B")
|
||||
expect(disk_usage_readable(1000)).to eq("1000B")
|
||||
|
@ -33,6 +33,19 @@ describe Utils do
|
||||
end
|
||||
end
|
||||
|
||||
specify ".parse_author!" do
|
||||
parse_error_msg = /Unable to parse name and email/
|
||||
|
||||
expect(described_class.parse_author!("John Doe <john.doe@example.com>"))
|
||||
.to eq({ name: "John Doe", email: "john.doe@example.com" })
|
||||
expect { described_class.parse_author!("") }
|
||||
.to raise_error(parse_error_msg)
|
||||
expect { described_class.parse_author!("John Doe") }
|
||||
.to raise_error(parse_error_msg)
|
||||
expect { described_class.parse_author!("<john.doe@example.com>") }
|
||||
.to raise_error(parse_error_msg)
|
||||
end
|
||||
|
||||
describe ".pluralize" do
|
||||
it "combines the stem with the default suffix based on the count" do
|
||||
expect(described_class.pluralize("foo", 0)).to eq("foos")
|
||||
|
@ -132,6 +132,18 @@ module Utils
|
||||
"#{stem}#{suffix}"
|
||||
end
|
||||
|
||||
sig { params(author: String).returns({ email: String, name: String }) }
|
||||
def self.parse_author!(author)
|
||||
match_data = /^(?<name>[^<]+?)[ \t]*<(?<email>[^>]+?)>$/.match(author)
|
||||
if match_data
|
||||
name = match_data[:name]
|
||||
email = match_data[:email]
|
||||
end
|
||||
raise UsageError, "Unable to parse name and email." if name.blank? && email.blank?
|
||||
|
||||
{ name: T.must(name), email: T.must(email) }
|
||||
end
|
||||
|
||||
# Makes an underscored, lowercase form from the expression in the string.
|
||||
#
|
||||
# Changes '::' to '/' to convert namespaces to paths.
|
||||
|
Loading…
x
Reference in New Issue
Block a user