Merge pull request #20209 from Homebrew/bundle-rename-brews-to-formulae

bundle: Rename "brews" to "formulae" for consistency
This commit is contained in:
Issy Long 2025-07-04 20:21:38 +00:00 committed by GitHub
commit 495b5bedde
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 110 additions and 107 deletions

View File

@ -304,7 +304,7 @@ Sorbet/StrictSigil:
- "Homebrew/utils/ruby_check_version_script.rb" # A standalone script. - "Homebrew/utils/ruby_check_version_script.rb" # A standalone script.
- "Homebrew/{standalone,startup}/*.rb" # These are loaded before sorbet-runtime - "Homebrew/{standalone,startup}/*.rb" # These are loaded before sorbet-runtime
- "Homebrew/test/**/*.rb" - "Homebrew/test/**/*.rb"
- "Homebrew/bundle/{brew_dumper,checker,commands/exec}.rb" # These aren't typed: true yet. - "Homebrew/bundle/{formula_dumper,checker,commands/exec}.rb" # These aren't typed: true yet.
Sorbet/TrueSigil: Sorbet/TrueSigil:
Enabled: true Enabled: true

View File

@ -1,7 +1,7 @@
# typed: true # rubocop:todo Sorbet/StrictSigil # typed: true # rubocop:todo Sorbet/StrictSigil
# frozen_string_literal: true # frozen_string_literal: true
require "bundle/brew_installer" require "bundle/formula_installer"
module Homebrew module Homebrew
module Bundle module Bundle
@ -11,7 +11,7 @@ module Homebrew
PACKAGE_TYPE_NAME = "Formula" PACKAGE_TYPE_NAME = "Formula"
def installed_and_up_to_date?(formula, no_upgrade: false) def installed_and_up_to_date?(formula, no_upgrade: false)
Homebrew::Bundle::BrewInstaller.formula_installed_and_up_to_date?(formula, no_upgrade:) Homebrew::Bundle::FormulaInstaller.formula_installed_and_up_to_date?(formula, no_upgrade:)
end end
end end
end end

View File

@ -24,8 +24,8 @@ module Homebrew
end end
def entry_to_formula(entry) def entry_to_formula(entry)
require "bundle/brew_installer" require "bundle/formula_installer"
Homebrew::Bundle::BrewInstaller.new(entry.name, entry.options) Homebrew::Bundle::FormulaInstaller.new(entry.name, entry.options)
end end
def formula_needs_to_start?(formula) def formula_needs_to_start?(formula)
@ -38,8 +38,8 @@ module Homebrew
end end
def lookup_old_name(service_name) def lookup_old_name(service_name)
require "bundle/brew_dumper" require "bundle/formula_dumper"
@old_names ||= Homebrew::Bundle::BrewDumper.formula_oldnames @old_names ||= Homebrew::Bundle::FormulaDumper.formula_oldnames
old_name = @old_names[service_name] old_name = @old_names[service_name]
old_name ||= @old_names[service_name.split("/").last] old_name ||= @old_names[service_name.split("/").last]
old_name old_name

View File

@ -139,14 +139,14 @@ module Homebrew
def self.reset! def self.reset!
require "bundle/cask_dumper" require "bundle/cask_dumper"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/mac_app_store_dumper" require "bundle/mac_app_store_dumper"
require "bundle/tap_dumper" require "bundle/tap_dumper"
require "bundle/brew_services" require "bundle/brew_services"
@dsl = nil @dsl = nil
Homebrew::Bundle::CaskDumper.reset! Homebrew::Bundle::CaskDumper.reset!
Homebrew::Bundle::BrewDumper.reset! Homebrew::Bundle::FormulaDumper.reset!
Homebrew::Bundle::MacAppStoreDumper.reset! Homebrew::Bundle::MacAppStoreDumper.reset!
Homebrew::Bundle::TapDumper.reset! Homebrew::Bundle::TapDumper.reset!
Homebrew::Bundle::BrewServices.reset! Homebrew::Bundle::BrewServices.reset!

View File

@ -10,7 +10,7 @@ module Homebrew
module Cleanup module Cleanup
def self.reset! def self.reset!
require "bundle/cask_dumper" require "bundle/cask_dumper"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/tap_dumper" require "bundle/tap_dumper"
require "bundle/vscode_extension_dumper" require "bundle/vscode_extension_dumper"
require "bundle/brew_services" require "bundle/brew_services"
@ -19,18 +19,18 @@ module Homebrew
@kept_casks = nil @kept_casks = nil
@kept_formulae = nil @kept_formulae = nil
Homebrew::Bundle::CaskDumper.reset! Homebrew::Bundle::CaskDumper.reset!
Homebrew::Bundle::BrewDumper.reset! Homebrew::Bundle::FormulaDumper.reset!
Homebrew::Bundle::TapDumper.reset! Homebrew::Bundle::TapDumper.reset!
Homebrew::Bundle::VscodeExtensionDumper.reset! Homebrew::Bundle::VscodeExtensionDumper.reset!
Homebrew::Bundle::BrewServices.reset! Homebrew::Bundle::BrewServices.reset!
end end
def self.run(global: false, file: nil, force: false, zap: false, dsl: nil, def self.run(global: false, file: nil, force: false, zap: false, dsl: nil,
brews: true, casks: true, taps: true, vscode: true) formulae: true, casks: true, taps: true, vscode: true)
@dsl ||= dsl @dsl ||= dsl
casks = casks ? casks_to_uninstall(global:, file:) : [] casks = casks ? casks_to_uninstall(global:, file:) : []
formulae = brews ? formulae_to_uninstall(global:, file:) : [] formulae = formulae ? formulae_to_uninstall(global:, file:) : []
taps = taps ? taps_to_untap(global:, file:) : [] taps = taps ? taps_to_untap(global:, file:) : []
vscode_extensions = vscode ? vscode_extensions_to_uninstall(global:, file:) : [] vscode_extensions = vscode ? vscode_extensions_to_uninstall(global:, file:) : []
if force if force
@ -101,11 +101,11 @@ module Homebrew
def self.formulae_to_uninstall(global: false, file: nil) def self.formulae_to_uninstall(global: false, file: nil)
kept_formulae = self.kept_formulae(global:, file:) kept_formulae = self.kept_formulae(global:, file:)
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/brew_installer" require "bundle/formula_installer"
current_formulae = Homebrew::Bundle::BrewDumper.formulae current_formulae = Homebrew::Bundle::FormulaDumper.formulae
current_formulae.reject! do |f| current_formulae.reject! do |f|
Homebrew::Bundle::BrewInstaller.formula_in_array?(f[:full_name], kept_formulae) Homebrew::Bundle::FormulaInstaller.formula_in_array?(f[:full_name], kept_formulae)
end end
# Don't try to uninstall formulae with keepme references # Don't try to uninstall formulae with keepme references
@ -119,7 +119,7 @@ module Homebrew
private_class_method def self.kept_formulae(global: false, file: nil) private_class_method def self.kept_formulae(global: false, file: nil)
require "bundle/brewfile" require "bundle/brewfile"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/cask_dumper" require "bundle/cask_dumper"
@kept_formulae ||= begin @kept_formulae ||= begin
@ -128,12 +128,12 @@ module Homebrew
kept_formulae = @dsl.entries.select { |e| e.type == :brew }.map(&:name) kept_formulae = @dsl.entries.select { |e| e.type == :brew }.map(&:name)
kept_formulae += Homebrew::Bundle::CaskDumper.formula_dependencies(kept_casks) kept_formulae += Homebrew::Bundle::CaskDumper.formula_dependencies(kept_casks)
kept_formulae.map! do |f| kept_formulae.map! do |f|
Homebrew::Bundle::BrewDumper.formula_aliases[f] || Homebrew::Bundle::FormulaDumper.formula_aliases[f] ||
Homebrew::Bundle::BrewDumper.formula_oldnames[f] || Homebrew::Bundle::FormulaDumper.formula_oldnames[f] ||
f f
end end
kept_formulae + recursive_dependencies(Homebrew::Bundle::BrewDumper.formulae, kept_formulae) kept_formulae + recursive_dependencies(Homebrew::Bundle::FormulaDumper.formulae, kept_formulae)
end end
end end

View File

@ -7,9 +7,10 @@ module Homebrew
module Bundle module Bundle
module Commands module Commands
module Dump module Dump
def self.run(global:, file:, describe:, force:, no_restart:, taps:, brews:, casks:, mas:, whalebrew:, vscode:) def self.run(global:, file:, describe:, force:, no_restart:, taps:, formulae:, casks:, mas:, whalebrew:,
vscode:)
Homebrew::Bundle::Dumper.dump_brewfile( Homebrew::Bundle::Dumper.dump_brewfile(
global:, file:, describe:, force:, no_restart:, taps:, brews:, casks:, mas:, whalebrew:, vscode:, global:, file:, describe:, force:, no_restart:, taps:, formulae:, casks:, mas:, whalebrew:, vscode:,
) )
end end
end end

View File

@ -8,11 +8,11 @@ module Homebrew
module Bundle module Bundle
module Commands module Commands
module List module List
def self.run(global:, file:, brews:, casks:, taps:, mas:, whalebrew:, vscode:) def self.run(global:, file:, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
parsed_entries = Brewfile.read(global:, file:).entries parsed_entries = Brewfile.read(global:, file:).entries
Homebrew::Bundle::Lister.list( Homebrew::Bundle::Lister.list(
parsed_entries, parsed_entries,
brews:, casks:, taps:, mas:, whalebrew:, vscode:, formulae:, casks:, taps:, mas:, whalebrew:, vscode:,
) )
end end
end end

View File

@ -13,9 +13,9 @@ module Homebrew
true true
end end
def self.build_brewfile(describe:, no_restart:, brews:, taps:, casks:, mas:, whalebrew:, vscode:) def self.build_brewfile(describe:, no_restart:, formulae:, taps:, casks:, mas:, whalebrew:, vscode:)
require "bundle/tap_dumper" require "bundle/tap_dumper"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/cask_dumper" require "bundle/cask_dumper"
require "bundle/mac_app_store_dumper" require "bundle/mac_app_store_dumper"
require "bundle/whalebrew_dumper" require "bundle/whalebrew_dumper"
@ -23,7 +23,7 @@ module Homebrew
content = [] content = []
content << TapDumper.dump if taps content << TapDumper.dump if taps
content << BrewDumper.dump(describe:, no_restart:) if brews content << FormulaDumper.dump(describe:, no_restart:) if formulae
content << CaskDumper.dump(describe:) if casks content << CaskDumper.dump(describe:) if casks
content << MacAppStoreDumper.dump if mas content << MacAppStoreDumper.dump if mas
content << WhalebrewDumper.dump if whalebrew content << WhalebrewDumper.dump if whalebrew
@ -31,11 +31,11 @@ module Homebrew
"#{content.reject(&:empty?).join("\n")}\n" "#{content.reject(&:empty?).join("\n")}\n"
end end
def self.dump_brewfile(global:, file:, describe:, force:, no_restart:, brews:, taps:, casks:, mas:, whalebrew:, def self.dump_brewfile(global:, file:, describe:, force:, no_restart:, formulae:, taps:, casks:, mas:,
vscode:) whalebrew:, vscode:)
path = brewfile_path(global:, file:) path = brewfile_path(global:, file:)
can_write_to_brewfile?(path, force:) can_write_to_brewfile?(path, force:)
content = build_brewfile(describe:, no_restart:, taps:, brews:, casks:, mas:, whalebrew:, vscode:) content = build_brewfile(describe:, no_restart:, taps:, formulae:, casks:, mas:, whalebrew:, vscode:)
write_file path, content write_file path, content
end end

View File

@ -7,7 +7,7 @@ require "tsort"
module Homebrew module Homebrew
module Bundle module Bundle
# TODO: refactor into multiple modules # TODO: refactor into multiple modules
module BrewDumper module FormulaDumper
def self.reset! def self.reset!
require "bundle/brew_services" require "bundle/brew_services"

View File

@ -3,7 +3,7 @@
module Homebrew module Homebrew
module Bundle module Bundle
class BrewInstaller class FormulaInstaller
def self.reset! def self.reset!
@installed_formulae = nil @installed_formulae = nil
@outdated_formulae = nil @outdated_formulae = nil
@ -179,13 +179,13 @@ module Homebrew
return true if array.include?(formula) return true if array.include?(formula)
return true if array.include?(formula.split("/").last) return true if array.include?(formula.split("/").last)
require "bundle/brew_dumper" require "bundle/formula_dumper"
old_names = Homebrew::Bundle::BrewDumper.formula_oldnames old_names = Homebrew::Bundle::FormulaDumper.formula_oldnames
old_name = old_names[formula] old_name = old_names[formula]
old_name ||= old_names[formula.split("/").last] old_name ||= old_names[formula.split("/").last]
return true if old_name && array.include?(old_name) return true if old_name && array.include?(old_name)
resolved_full_name = Homebrew::Bundle::BrewDumper.formula_aliases[formula] resolved_full_name = Homebrew::Bundle::FormulaDumper.formula_aliases[formula]
return false unless resolved_full_name return false unless resolved_full_name
return true if array.include?(resolved_full_name) return true if array.include?(resolved_full_name)
return true if array.include?(resolved_full_name.split("/").last) return true if array.include?(resolved_full_name.split("/").last)
@ -219,14 +219,14 @@ module Homebrew
end end
def self.formulae def self.formulae
require "bundle/brew_dumper" require "bundle/formula_dumper"
Homebrew::Bundle::BrewDumper.formulae Homebrew::Bundle::FormulaDumper.formulae
end end
private private
def installed? def installed?
BrewInstaller.formula_installed?(@name) FormulaInstaller.formula_installed?(@name)
end end
def linked? def linked?
@ -242,7 +242,7 @@ module Homebrew
end end
def upgradable? def upgradable?
BrewInstaller.formula_upgradable?(@name) FormulaInstaller.formula_upgradable?(@name)
end end
def conflicts_with def conflicts_with
@ -250,8 +250,8 @@ module Homebrew
conflicts_with = Set.new conflicts_with = Set.new
conflicts_with += @conflicts_with_arg conflicts_with += @conflicts_with_arg
require "bundle/brew_dumper" require "bundle/formula_dumper"
if (formula = Homebrew::Bundle::BrewDumper.formulae_by_full_name(@full_name)) && if (formula = Homebrew::Bundle::FormulaDumper.formulae_by_full_name(@full_name)) &&
(formula_conflicts_with = formula[:conflicts_with]) (formula_conflicts_with = formula[:conflicts_with])
conflicts_with += formula_conflicts_with conflicts_with += formula_conflicts_with
end end
@ -262,7 +262,7 @@ module Homebrew
def resolve_conflicts!(verbose:) def resolve_conflicts!(verbose:)
conflicts_with.each do |conflict| conflicts_with.each do |conflict|
next unless BrewInstaller.formula_installed?(conflict) next unless FormulaInstaller.formula_installed?(conflict)
if verbose if verbose
puts <<~EOS puts <<~EOS
@ -293,7 +293,7 @@ module Homebrew
return false return false
end end
BrewInstaller.installed_formulae << @name FormulaInstaller.installed_formulae << @name
@changed = true @changed = true
true true
end end

View File

@ -2,7 +2,7 @@
# frozen_string_literal: true # frozen_string_literal: true
require "bundle/dsl" require "bundle/dsl"
require "bundle/brew_installer" require "bundle/formula_installer"
require "bundle/cask_installer" require "bundle/cask_installer"
require "bundle/mac_app_store_installer" require "bundle/mac_app_store_installer"
require "bundle/whalebrew_installer" require "bundle/whalebrew_installer"
@ -27,8 +27,8 @@ module Homebrew
cls = case type cls = case type
when :brew when :brew
options = entry.options options = entry.options
verb = "Upgrading" if Homebrew::Bundle::BrewInstaller.formula_upgradable?(name) verb = "Upgrading" if Homebrew::Bundle::FormulaInstaller.formula_upgradable?(name)
Homebrew::Bundle::BrewInstaller Homebrew::Bundle::FormulaInstaller
when :cask when :cask
options = entry.options options = entry.options
verb = "Upgrading" if Homebrew::Bundle::CaskInstaller.cask_upgradable?(name) verb = "Upgrading" if Homebrew::Bundle::CaskInstaller.cask_upgradable?(name)

View File

@ -4,14 +4,14 @@
module Homebrew module Homebrew
module Bundle module Bundle
module Lister module Lister
def self.list(entries, brews:, casks:, taps:, mas:, whalebrew:, vscode:) def self.list(entries, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
entries.each do |entry| entries.each do |entry|
puts entry.name if show?(entry.type, brews:, casks:, taps:, mas:, whalebrew:, vscode:) puts entry.name if show?(entry.type, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
end end
end end
private_class_method def self.show?(type, brews:, casks:, taps:, mas:, whalebrew:, vscode:) private_class_method def self.show?(type, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
return true if brews && type == :brew return true if formulae && type == :brew
return true if casks && type == :cask return true if casks && type == :cask
return true if taps && type == :tap return true if taps && type == :tap
return true if mas && type == :mas return true if mas && type == :mas

View File

@ -9,7 +9,7 @@ module Homebrew
class << self class << self
sig { params(entry: Dsl::Entry, silent: T::Boolean).returns(T::Boolean) } sig { params(entry: Dsl::Entry, silent: T::Boolean).returns(T::Boolean) }
def skip?(entry, silent: false) def skip?(entry, silent: false)
require "bundle/brew_dumper" require "bundle/formula_dumper"
return true if @failed_taps&.any? do |tap| return true if @failed_taps&.any? do |tap|
prefix = "#{tap}/" prefix = "#{tap}/"

View File

@ -97,7 +97,7 @@ module Homebrew
env: [:bundle_install_cleanup, "--global"] env: [:bundle_install_cleanup, "--global"]
switch "--all", switch "--all",
description: "`list` all dependencies." description: "`list` all dependencies."
switch "--formula", "--brews", switch "--formula", "--formulae",
description: "`list`, `dump` or `cleanup` Homebrew formula dependencies." description: "`list`, `dump` or `cleanup` Homebrew formula dependencies."
switch "--cask", "--casks", switch "--cask", "--casks",
description: "`list`, `dump` or `cleanup` Homebrew cask dependencies." description: "`list`, `dump` or `cleanup` Homebrew cask dependencies."
@ -162,7 +162,7 @@ module Homebrew
zap = args.zap? zap = args.zap?
Homebrew::Bundle.upgrade_formulae = args.upgrade_formulae Homebrew::Bundle.upgrade_formulae = args.upgrade_formulae
no_type_args = !args.brews? && !args.casks? && !args.taps? && !args.mas? && !args.whalebrew? && !args.vscode? no_type_args = [args.formulae?, args.casks?, args.taps?, args.mas?, args.whalebrew?, args.vscode?].none?
if args.install? if args.install?
if [nil, "install", "upgrade"].include?(subcommand) if [nil, "install", "upgrade"].include?(subcommand)
@ -209,7 +209,7 @@ module Homebrew
describe: args.describe?, describe: args.describe?,
no_restart: args.no_restart?, no_restart: args.no_restart?,
taps: args.taps? || no_type_args, taps: args.taps? || no_type_args,
brews: args.brews? || no_type_args, formulae: args.formulae? || no_type_args,
casks: args.casks? || no_type_args, casks: args.casks? || no_type_args,
mas: args.mas? || no_type_args, mas: args.mas? || no_type_args,
whalebrew: args.whalebrew? || no_type_args, whalebrew: args.whalebrew? || no_type_args,
@ -222,7 +222,7 @@ module Homebrew
require "bundle/commands/cleanup" require "bundle/commands/cleanup"
Homebrew::Bundle::Commands::Cleanup.run( Homebrew::Bundle::Commands::Cleanup.run(
global:, file:, force:, zap:, global:, file:, force:, zap:,
brews: args.brews? || no_type_args, formulae: args.formulae? || no_type_args,
casks: args.casks? || no_type_args, casks: args.casks? || no_type_args,
taps: args.taps? || no_type_args, taps: args.taps? || no_type_args,
vscode: args.vscode? || no_type_args vscode: args.vscode? || no_type_args
@ -235,7 +235,7 @@ module Homebrew
Homebrew::Bundle::Commands::List.run( Homebrew::Bundle::Commands::List.run(
global:, global:,
file:, file:,
brews: args.brews? || args.all? || no_type_args, formulae: args.formulae? || args.all? || no_type_args,
casks: args.casks? || args.all?, casks: args.casks? || args.all?,
taps: args.taps? || args.all?, taps: args.taps? || args.all?,
mas: args.mas? || args.all?, mas: args.mas? || args.all?,
@ -243,9 +243,9 @@ module Homebrew
vscode: args.vscode? || args.all?, vscode: args.vscode? || args.all?,
) )
when "add", "remove" when "add", "remove"
# We intentionally omit the `s` from `brews`, `casks`, and `taps` for ease of handling later. # We intentionally omit the s from `brews`, `casks`, and `taps` for ease of handling later.
type_hash = { type_hash = {
brew: args.brews?, brew: args.formulae?,
cask: args.casks?, cask: args.casks?,
tap: args.taps?, tap: args.taps?,
mas: args.mas?, mas: args.mas?,

View File

@ -415,7 +415,7 @@ module OS
<<~EOS <<~EOS
Your Cellar and TEMP directories are on different volumes. Your Cellar and TEMP directories are on different volumes.
macOS won't move relative symlinks across volumes unless the target file already macOS won't move relative symlinks across volumes unless the target file already
exists. Brews known to be affected by this are Git and Narwhal. exists. Formulae known to be affected by this are Git and Narwhal.
You should set the "HOMEBREW_TEMP" environment variable to a suitable You should set the "HOMEBREW_TEMP" environment variable to a suitable
directory on the same volume as your Cellar. directory on the same volume as your Cellar.

View File

@ -14,9 +14,6 @@ class Homebrew::Cmd::Bundle::Args < Homebrew::CLI::Args
sig { returns(T::Boolean) } sig { returns(T::Boolean) }
def all?; end def all?; end
sig { returns(T::Boolean) }
def brews?; end
sig { returns(T::Boolean) } sig { returns(T::Boolean) }
def cask?; end def cask?; end
@ -44,6 +41,9 @@ class Homebrew::Cmd::Bundle::Args < Homebrew::CLI::Args
sig { returns(T::Boolean) } sig { returns(T::Boolean) }
def formula?; end def formula?; end
sig { returns(T::Boolean) }
def formulae?; end
sig { returns(T::Boolean) } sig { returns(T::Boolean) }
def global?; end def global?; end

View File

@ -2,7 +2,7 @@
require "ostruct" require "ostruct"
require "bundle" require "bundle"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "tsort" require "tsort"
require "formula" require "formula"
require "tab" require "tab"
@ -10,7 +10,7 @@ require "utils/bottles"
# TODO: remove OpenStruct usage # TODO: remove OpenStruct usage
# rubocop:todo Style/OpenStructUse # rubocop:todo Style/OpenStructUse
RSpec.describe Homebrew::Bundle::BrewDumper do RSpec.describe Homebrew::Bundle::FormulaDumper do
subject(:dumper) { described_class } subject(:dumper) { described_class }
let(:foo) do let(:foo) do
@ -184,7 +184,7 @@ RSpec.describe Homebrew::Bundle::BrewDumper do
it "exits on cyclic exceptions" do it "exits on cyclic exceptions" do
expect(Formula).to receive(:installed).and_return([foo, bar, baz]) expect(Formula).to receive(:installed).and_return([foo, bar, baz])
expect_any_instance_of(Homebrew::Bundle::BrewDumper::Topo).to receive(:tsort).and_raise( expect_any_instance_of(Homebrew::Bundle::FormulaDumper::Topo).to receive(:tsort).and_raise(
TSort::Cyclic, TSort::Cyclic,
'topological sort failed: ["foo", "bar"]', 'topological sort failed: ["foo", "bar"]',
) )

View File

@ -2,11 +2,11 @@
require "bundle" require "bundle"
require "formula" require "formula"
require "bundle/brew_installer" require "bundle/formula_installer"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/brew_services" require "bundle/brew_services"
RSpec.describe Homebrew::Bundle::BrewInstaller do RSpec.describe Homebrew::Bundle::FormulaInstaller do
let(:formula_name) { "mysql" } let(:formula_name) { "mysql" }
let(:options) { { args: ["with-option"] } } let(:options) { { args: ["with-option"] } }
let(:installer) { described_class.new(formula_name, options) } let(:installer) { described_class.new(formula_name, options) }
@ -182,8 +182,8 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
context "when the conflicts_with option is provided" do context "when the conflicts_with option is provided" do
before do before do
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae_by_full_name).and_call_original allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae_by_full_name).and_call_original
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae_by_full_name).with("mysql").and_return( allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae_by_full_name).with("mysql").and_return(
name: "mysql", name: "mysql",
conflicts_with: ["mysql55"], conflicts_with: ["mysql55"],
) )
@ -311,7 +311,7 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
describe ".outdated_formulae" do describe ".outdated_formulae" do
it "calls Homebrew" do it "calls Homebrew" do
described_class.reset! described_class.reset!
expect(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return( expect(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return(
[ [
{ name: "a", outdated?: true }, { name: "a", outdated?: true },
{ name: "b", outdated?: true }, { name: "b", outdated?: true },
@ -325,7 +325,7 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
describe ".pinned_formulae" do describe ".pinned_formulae" do
it "calls Homebrew" do it "calls Homebrew" do
described_class.reset! described_class.reset!
expect(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return( expect(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return(
[ [
{ name: "a", pinned?: true }, { name: "a", pinned?: true },
{ name: "b", pinned?: true }, { name: "b", pinned?: true },
@ -338,11 +338,11 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
describe ".formula_installed_and_up_to_date?" do describe ".formula_installed_and_up_to_date?" do
before do before do
Homebrew::Bundle::BrewDumper.reset! Homebrew::Bundle::FormulaDumper.reset!
described_class.reset! described_class.reset!
allow(described_class).to receive(:outdated_formulae).and_return(%w[bar]) allow(described_class).to receive(:outdated_formulae).and_return(%w[bar])
allow_any_instance_of(Formula).to receive(:outdated?).and_return(true) allow_any_instance_of(Formula).to receive(:outdated?).and_return(true)
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return [ allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return [
{ {
name: "foo", name: "foo",
full_name: "homebrew/tap/foo", full_name: "homebrew/tap/foo",

View File

@ -6,7 +6,7 @@ require "bundle/brew_checker"
require "bundle/cask_checker" require "bundle/cask_checker"
require "bundle/mac_app_store_checker" require "bundle/mac_app_store_checker"
require "bundle/vscode_extension_checker" require "bundle/vscode_extension_checker"
require "bundle/brew_installer" require "bundle/formula_installer"
require "bundle/cask_installer" require "bundle/cask_installer"
require "bundle/mac_app_store_installer" require "bundle/mac_app_store_installer"
require "bundle/dsl" require "bundle/dsl"
@ -50,7 +50,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
it "raises an error" do it "raises an error" do
allow(Homebrew::Bundle).to receive(:cask_installed?).and_return(true) allow(Homebrew::Bundle).to receive(:cask_installed?).and_return(true)
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([]) allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow_any_instance_of(Pathname).to receive(:read).and_return("cask 'abc'") allow_any_instance_of(Pathname).to receive(:read).and_return("cask 'abc'")
expect { do_check }.to raise_error(SystemExit) expect { do_check }.to raise_error(SystemExit)
end end
@ -61,7 +61,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
it "raises an error and outputs to stdout" do it "raises an error and outputs to stdout" do
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([]) allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'") allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
expect { do_check }.to raise_error(SystemExit).and \ expect { do_check }.to raise_error(SystemExit).and \
output(/brew bundle can't satisfy your Brewfile's dependencies/).to_stdout output(/brew bundle can't satisfy your Brewfile's dependencies/).to_stdout
@ -69,7 +69,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
it "partially outputs when HOMEBREW_BUNDLE_CHECK_ALREADY_OUTPUT_FORMULAE_ERRORS is set" do it "partially outputs when HOMEBREW_BUNDLE_CHECK_ALREADY_OUTPUT_FORMULAE_ERRORS is set" do
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([]) allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'") allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
ENV["HOMEBREW_BUNDLE_CHECK_ALREADY_OUTPUT_FORMULAE_ERRORS"] = "abc" ENV["HOMEBREW_BUNDLE_CHECK_ALREADY_OUTPUT_FORMULAE_ERRORS"] = "abc"
expect { do_check }.to raise_error(SystemExit).and \ expect { do_check }.to raise_error(SystemExit).and \
@ -78,7 +78,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
it "does not raise error on skippable formula" do it "does not raise error on skippable formula" do
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([]) allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow(Homebrew::Bundle::Skipper).to receive(:skip?).and_return(true) allow(Homebrew::Bundle::Skipper).to receive(:skip?).and_return(true)
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'") allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
expect { do_check }.not_to raise_error expect { do_check }.not_to raise_error
@ -88,7 +88,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
context "when taps are not tapped" do context "when taps are not tapped" do
it "raises an error" do it "raises an error" do
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([]) allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow_any_instance_of(Pathname).to receive(:read).and_return("tap 'abc/def'") allow_any_instance_of(Pathname).to receive(:read).and_return("tap 'abc/def'")
expect { do_check }.to raise_error(SystemExit) expect { do_check }.to raise_error(SystemExit)
end end
@ -97,7 +97,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
context "when apps are not installed", :needs_macos do context "when apps are not installed", :needs_macos do
it "raises an error" do it "raises an error" do
allow(Homebrew::Bundle::MacAppStoreDumper).to receive(:app_ids).and_return([]) allow(Homebrew::Bundle::MacAppStoreDumper).to receive(:app_ids).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow_any_instance_of(Pathname).to receive(:read).and_return("mas 'foo', id: 123") allow_any_instance_of(Pathname).to receive(:read).and_return("mas 'foo', id: 123")
expect { do_check }.to raise_error(SystemExit) expect { do_check }.to raise_error(SystemExit)
end end
@ -118,8 +118,8 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
Homebrew::Bundle::Checker.reset! Homebrew::Bundle::Checker.reset!
allow_any_instance_of(Homebrew::Bundle::Checker::MacAppStoreChecker).to \ allow_any_instance_of(Homebrew::Bundle::Checker::MacAppStoreChecker).to \
receive(:installed_and_up_to_date?).and_return(false) receive(:installed_and_up_to_date?).and_return(false)
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(installed_formulae: ["abc", "def"], allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(installed_formulae: ["abc", "def"],
upgradable_formulae: []) upgradable_formulae: [])
allow(Homebrew::Bundle::BrewServices).to receive(:started?).with("abc").and_return(true) allow(Homebrew::Bundle::BrewServices).to receive(:started?).with("abc").and_return(true)
allow(Homebrew::Bundle::BrewServices).to receive(:started?).with("def").and_return(false) allow(Homebrew::Bundle::BrewServices).to receive(:started?).with("def").and_return(false)
end end
@ -128,7 +128,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
Homebrew::Bundle::Checker.reset! Homebrew::Bundle::Checker.reset!
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'") allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
expect(Homebrew::Bundle::BrewInstaller.installed_formulae).to include("abc") expect(Homebrew::Bundle::FormulaInstaller.installed_formulae).to include("abc")
expect(Homebrew::Bundle::CaskInstaller.installed_casks).not_to include("abc") expect(Homebrew::Bundle::CaskInstaller.installed_casks).not_to include("abc")
expect(Homebrew::Bundle::BrewServices.started?("abc")).to be(true) expect(Homebrew::Bundle::BrewServices.started?("abc")).to be(true)
@ -171,7 +171,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
Homebrew::Bundle::Checker.reset! Homebrew::Bundle::Checker.reset!
allow_any_instance_of(Homebrew::Bundle::Checker::MacAppStoreChecker).to \ allow_any_instance_of(Homebrew::Bundle::Checker::MacAppStoreChecker).to \
receive(:installed_and_up_to_date?).and_return(false) receive(:installed_and_up_to_date?).and_return(false)
allow(Homebrew::Bundle::BrewInstaller).to receive(:installed_formulae).and_return(["abc", "def"]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:installed_formulae).and_return(["abc", "def"])
end end
it "raises an error that doesn't mention upgrade" do it "raises an error that doesn't mention upgrade" do
@ -262,7 +262,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
context "when verbose mode is not enabled" do context "when verbose mode is not enabled" do
it "stops checking after the first missing formula" do it "stops checking after the first missing formula" do
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([]) allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([]) allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'\nbrew 'def'") allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'\nbrew 'def'")
expect_any_instance_of(Homebrew::Bundle::Checker::BrewChecker).to \ expect_any_instance_of(Homebrew::Bundle::Checker::BrewChecker).to \

View File

@ -70,7 +70,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
{ name: "builddependency2", full_name: "builddependency2" }, { name: "builddependency2", full_name: "builddependency2" },
{ name: "caskdependency", full_name: "homebrew/tap/caskdependency" }, { name: "caskdependency", full_name: "homebrew/tap/caskdependency" },
].map { |formula| dependencies_arrays_hash.merge(formula) } ].map { |formula| dependencies_arrays_hash.merge(formula) }
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return(formulae_hash) allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return(formulae_hash)
formulae_hash.each do |hash_formula| formulae_hash.each do |hash_formula|
name = hash_formula[:name] name = hash_formula[:name]
@ -106,7 +106,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
it "ignores formulae with .keepme references when computing which formulae to uninstall" do it "ignores formulae with .keepme references when computing which formulae to uninstall" do
name = full_name ="c" name = full_name ="c"
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return([{ name:, full_name: }]) allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return([{ name:, full_name: }])
f = formula(name) { url "#{name}-1.0" } f = formula(name) { url "#{name}-1.0" }
stub_formula_loader f, name stub_formula_loader f, name
@ -159,7 +159,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
expect { described_class.run(force: true) }.to output(/Uninstalled 2 casks/).to_stdout expect { described_class.run(force: true) }.to output(/Uninstalled 2 casks/).to_stdout
end end
it "does not uninstall casks if --brews is disabled" do it "does not uninstall casks if --formulae is disabled" do
expect(Kernel).not_to receive(:system) expect(Kernel).not_to receive(:system)
expect(described_class).to receive(:system_output_no_stderr).and_return("") expect(described_class).to receive(:system_output_no_stderr).and_return("")
expect { described_class.run(force: true, casks: false) }.not_to output.to_stdout expect { described_class.run(force: true, casks: false) }.not_to output.to_stdout
@ -206,7 +206,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
it "does not uninstall formulae if --casks is disabled" do it "does not uninstall formulae if --casks is disabled" do
expect(Kernel).not_to receive(:system) expect(Kernel).not_to receive(:system)
expect(described_class).to receive(:system_output_no_stderr).and_return("") expect(described_class).to receive(:system_output_no_stderr).and_return("")
expect { described_class.run(force: true, brews: false) }.not_to output.to_stdout expect { described_class.run(force: true, formulae: false) }.not_to output.to_stdout
end end
end end

View File

@ -3,14 +3,14 @@
require "bundle" require "bundle"
require "bundle/commands/dump" require "bundle/commands/dump"
require "bundle/cask_dumper" require "bundle/cask_dumper"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/tap_dumper" require "bundle/tap_dumper"
require "bundle/whalebrew_dumper" require "bundle/whalebrew_dumper"
require "bundle/vscode_extension_dumper" require "bundle/vscode_extension_dumper"
RSpec.describe Homebrew::Bundle::Commands::Dump do RSpec.describe Homebrew::Bundle::Commands::Dump do
subject(:dump) do subject(:dump) do
described_class.run(global:, file: nil, describe: false, force:, no_restart: false, taps: true, brews: true, described_class.run(global:, file: nil, describe: false, force:, no_restart: false, taps: true, formulae: true,
casks: true, mas: true, whalebrew: true, vscode: true) casks: true, mas: true, whalebrew: true, vscode: true)
end end
@ -19,7 +19,7 @@ RSpec.describe Homebrew::Bundle::Commands::Dump do
before do before do
Homebrew::Bundle::CaskDumper.reset! Homebrew::Bundle::CaskDumper.reset!
Homebrew::Bundle::BrewDumper.reset! Homebrew::Bundle::FormulaDumper.reset!
Homebrew::Bundle::TapDumper.reset! Homebrew::Bundle::TapDumper.reset!
Homebrew::Bundle::WhalebrewDumper.reset! Homebrew::Bundle::WhalebrewDumper.reset!
Homebrew::Bundle::VscodeExtensionDumper.reset! Homebrew::Bundle::VscodeExtensionDumper.reset!
@ -39,7 +39,7 @@ RSpec.describe Homebrew::Bundle::Commands::Dump do
it "exits before doing any work" do it "exits before doing any work" do
expect(Homebrew::Bundle::TapDumper).not_to receive(:dump) expect(Homebrew::Bundle::TapDumper).not_to receive(:dump)
expect(Homebrew::Bundle::BrewDumper).not_to receive(:dump) expect(Homebrew::Bundle::FormulaDumper).not_to receive(:dump)
expect(Homebrew::Bundle::CaskDumper).not_to receive(:dump) expect(Homebrew::Bundle::CaskDumper).not_to receive(:dump)
expect(Homebrew::Bundle::WhalebrewDumper).not_to receive(:dump) expect(Homebrew::Bundle::WhalebrewDumper).not_to receive(:dump)
expect do expect do

View File

@ -30,7 +30,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
it "does not raise an error" do it "does not raise an error" do
allow(Homebrew::Bundle::TapInstaller).to receive(:preinstall).and_return(false) allow(Homebrew::Bundle::TapInstaller).to receive(:preinstall).and_return(false)
allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive(:preinstall).and_return(false) allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive(:preinstall).and_return(false)
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: true)
allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: true)
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true)
allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents) allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents)
@ -40,7 +40,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
it "#dsl returns a valid DSL" do it "#dsl returns a valid DSL" do
allow(Homebrew::Bundle::TapInstaller).to receive(:preinstall).and_return(false) allow(Homebrew::Bundle::TapInstaller).to receive(:preinstall).and_return(false)
allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive(:preinstall).and_return(false) allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive(:preinstall).and_return(false)
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: true)
allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: true)
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true)
allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents) allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents)
@ -49,7 +49,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
end end
it "does not raise an error when skippable" do it "does not raise an error when skippable" do
expect(Homebrew::Bundle::BrewInstaller).not_to receive(:install) expect(Homebrew::Bundle::FormulaInstaller).not_to receive(:install)
allow(Homebrew::Bundle::Skipper).to receive(:skip?).and_return(true) allow(Homebrew::Bundle::Skipper).to receive(:skip?).and_return(true)
allow_any_instance_of(Pathname).to receive(:read) allow_any_instance_of(Pathname).to receive(:read)
@ -58,7 +58,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
end end
it "exits on failures" do it "exits on failures" do
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: false) allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: false)
allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: false) allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: false)
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: false) allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: false)
allow(Homebrew::Bundle::TapInstaller).to receive_messages(preinstall: true, install: false) allow(Homebrew::Bundle::TapInstaller).to receive_messages(preinstall: true, install: false)
@ -71,7 +71,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
it "skips installs from failed taps" do it "skips installs from failed taps" do
allow(Homebrew::Bundle::CaskInstaller).to receive(:preinstall).and_return(false) allow(Homebrew::Bundle::CaskInstaller).to receive(:preinstall).and_return(false)
allow(Homebrew::Bundle::TapInstaller).to receive_messages(preinstall: true, install: false) allow(Homebrew::Bundle::TapInstaller).to receive_messages(preinstall: true, install: false)
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: true)
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true)
allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive_messages(preinstall: true, install: true) allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive_messages(preinstall: true, install: true)
allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents) allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents)

View File

@ -4,9 +4,11 @@ require "bundle"
require "bundle/commands/list" require "bundle/commands/list"
RSpec.describe Homebrew::Bundle::Commands::List do RSpec.describe Homebrew::Bundle::Commands::List do
subject(:list) { described_class.run(global: false, file: nil, brews:, casks:, taps:, mas:, whalebrew:, vscode:) } subject(:list) do
described_class.run(global: false, file: nil, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
end
let(:brews) { true } let(:formulae) { true }
let(:casks) { false } let(:casks) { false }
let(:taps) { false } let(:taps) { false }
let(:mas) { false } let(:mas) { false }
@ -38,7 +40,7 @@ RSpec.describe Homebrew::Bundle::Commands::List do
describe "limiting when certain options are passed" do describe "limiting when certain options are passed" do
types_and_deps = { types_and_deps = {
taps: "phinze/cask", taps: "phinze/cask",
brews: "mysql", formulae: "mysql",
casks: "google-chrome", casks: "google-chrome",
mas: "1Password", mas: "1Password",
whalebrew: "whalebrew/imagemagick", whalebrew: "whalebrew/imagemagick",
@ -56,7 +58,7 @@ RSpec.describe Homebrew::Bundle::Commands::List do
verb = (options_list.length == 1 && "is") || "are" verb = (options_list.length == 1 && "is") || "are"
context "when #{opts} #{verb} passed" do context "when #{opts} #{verb} passed" do
let(:brews) { args_hash[:brews] } let(:formulae) { args_hash[:formulae] }
let(:casks) { args_hash[:casks] } let(:casks) { args_hash[:casks] }
let(:taps) { args_hash[:taps] } let(:taps) { args_hash[:taps] }
let(:mas) { args_hash[:mas] } let(:mas) { args_hash[:mas] }

View File

@ -2,7 +2,7 @@
require "bundle" require "bundle"
require "bundle/dumper" require "bundle/dumper"
require "bundle/brew_dumper" require "bundle/formula_dumper"
require "bundle/tap_dumper" require "bundle/tap_dumper"
require "bundle/cask_dumper" require "bundle/cask_dumper"
require "bundle/mac_app_store_dumper" require "bundle/mac_app_store_dumper"
@ -22,7 +22,7 @@ RSpec.describe Homebrew::Bundle::Dumper do
cask_installed?: true, mas_installed?: false, whalebrew_installed?: false, cask_installed?: true, mas_installed?: false, whalebrew_installed?: false,
vscode_installed?: false vscode_installed?: false
) )
Homebrew::Bundle::BrewDumper.reset! Homebrew::Bundle::FormulaDumper.reset!
Homebrew::Bundle::TapDumper.reset! Homebrew::Bundle::TapDumper.reset!
Homebrew::Bundle::CaskDumper.reset! Homebrew::Bundle::CaskDumper.reset!
Homebrew::Bundle::MacAppStoreDumper.reset! Homebrew::Bundle::MacAppStoreDumper.reset!
@ -49,7 +49,7 @@ RSpec.describe Homebrew::Bundle::Dumper do
it "generates output" do it "generates output" do
expect(dumper.build_brewfile( expect(dumper.build_brewfile(
describe: false, no_restart: false, brews: true, taps: true, casks: true, mas: true, describe: false, no_restart: false, formulae: true, taps: true, casks: true, mas: true,
whalebrew: true, vscode: true whalebrew: true, vscode: true
)).to eql("cask \"google-chrome\"\ncask \"java\"\ncask \"iterm2-beta\"\n") )).to eql("cask \"google-chrome\"\ncask \"java\"\ncask \"iterm2-beta\"\n")
end end