diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb index 77fa86246f..10d5f5df85 100644 --- a/Library/Homebrew/dev-cmd/create.rb +++ b/Library/Homebrew/dev-cmd/create.rb @@ -31,6 +31,8 @@ module Homebrew description: "Create a basic template for a Perl build." switch "--python", description: "Create a basic template for a Python build." + switch "--ruby", + description: "Create a basic template for a Ruby build." switch "--rust", description: "Create a basic template for a Rust build." switch "--no-fetch", @@ -86,6 +88,8 @@ module Homebrew :perl elsif args.python? :python + elsif args.ruby? + :ruby elsif args.rust? :rust end diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index 3e4c8aeb96..11d3249b2a 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -112,6 +112,8 @@ module Homebrew uses_from_macos "perl" <% elsif mode == :python %> depends_on "python" + <% elsif mode == :ruby %> + uses_from_macos "ruby" <% elsif mode == :rust %> depends_on "rust" => :build <% elsif mode.nil? %> @@ -166,6 +168,12 @@ module Homebrew bin.env_script_all_files(libexec/"bin", :PERL5LIB => ENV["PERL5LIB"]) <% elsif mode == :python %> virtualenv_install_with_resources + <% elsif mode == :ruby %> + ENV["GEM_HOME"] = libexec + system "gem", "build", "\#{name}.gemspec" + system "gem", "install", "\#{name}-\#{version}.gem" + bin.install libexec/"bin/\#{name}" + bin.env_script_all_files(libexec/"bin", :GEM_HOME => ENV["GEM_HOME"]) <% elsif mode == :rust %> system "cargo", "install", "--locked", "--root", prefix, "--path", "." <% else %> diff --git a/Library/Homebrew/test/cask/cmd/upgrade_spec.rb b/Library/Homebrew/test/cask/cmd/upgrade_spec.rb index 2c0fff3d7b..476364c7c6 100644 --- a/Library/Homebrew/test/cask/cmd/upgrade_spec.rb +++ b/Library/Homebrew/test/cask/cmd/upgrade_spec.rb @@ -71,31 +71,6 @@ describe Cask::Cmd::Upgrade, :cask do expect(local_transmission_path).to be_a_directory expect(local_transmission.versions).to include("2.60") end - - it 'updates "auto_updates" and "latest" Casks when their tokens are provided in the command line' do - local_caffeine = Cask::CaskLoader.load("local-caffeine") - local_caffeine_path = Cask::Config.global.appdir.join("Caffeine.app") - auto_updates = Cask::CaskLoader.load("auto-updates") - auto_updates_path = Cask::Config.global.appdir.join("MyFancyApp.app") - - expect(local_caffeine).to be_installed - expect(local_caffeine_path).to be_a_directory - expect(local_caffeine.versions).to include("1.2.2") - - expect(auto_updates).to be_installed - expect(auto_updates_path).to be_a_directory - expect(auto_updates.versions).to include("2.57") - - described_class.run("local-caffeine", "auto-updates") - - expect(local_caffeine).to be_installed - expect(local_caffeine_path).to be_a_directory - expect(local_caffeine.versions).to include("1.2.3") - - expect(auto_updates).to be_installed - expect(auto_updates_path).to be_a_directory - expect(auto_updates.versions).to include("2.61") - end end describe "with --greedy it checks additional Casks" do diff --git a/docs/Manpage.md b/docs/Manpage.md index 4c7c6f89b3..230698e4ee 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -813,6 +813,8 @@ a simple example. For the complete API, see: Create a basic template for a Perl build. * `--python`: Create a basic template for a Python build. +* `--ruby`: + Create a basic template for a Ruby build. * `--rust`: Create a basic template for a Rust build. * `--no-fetch`: diff --git a/manpages/brew.1 b/manpages/brew.1 index f286c8d09d..ff46ac5bbb 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -1044,6 +1044,10 @@ Create a basic template for a Perl build\. Create a basic template for a Python build\. . .TP +\fB\-\-ruby\fR +Create a basic template for a Ruby build\. +. +.TP \fB\-\-rust\fR Create a basic template for a Rust build\. .