Use Bundler to manage vendor directory
Rather than having to manually keep track of what version each thing in here is and copy files around by hand on update let's use Bundler's standalone mode and careful use of `.gitignore` to help us do it. This means a `bundle update --standalone` will allow us to update all gems in vendor. We could consider vendoring other gems this way in future but I'd suggest only doing this for gems with no dependencies or at least gems with no native extensions. The only gem this applies to that we currently use is `ruby-prof` and I'm not convinced it's widely used enough to warrant vendoring for everyone. Perhaps that's another criteria: it should be functionality that's used by non-developer commands and/or normal Homebrew usage.
This commit is contained in:
parent
9a9f9c3e1c
commit
d7eca0b57c
9
.gitignore
vendored
9
.gitignore
vendored
@ -23,6 +23,15 @@
|
||||
**/.bundle/cache
|
||||
**/vendor/bundle
|
||||
**/vendor/ruby
|
||||
**/vendor/bundle-standalone/ruby/*/cache
|
||||
**/vendor/bundle-standalone/ruby/*/gems/*/*
|
||||
**/vendor/bundle-standalone/ruby/*/specifications
|
||||
|
||||
# Unignore vendored gems
|
||||
!**/vendor/bundle-standalone/ruby/*/gems/*/lib
|
||||
|
||||
# Ignore backports gem (we don't need all files)
|
||||
**/vendor/bundle-standalone/ruby/*/gems/backports-*/lib
|
||||
|
||||
# Ignore `bin` contents (again).
|
||||
/bin
|
||||
|
@ -1,4 +1,4 @@
|
||||
require "vendor/plist/plist"
|
||||
require "plist"
|
||||
|
||||
require "cask/artifact/abstract_artifact"
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Contains backports from newer versions of Ruby
|
||||
require_relative "../vendor/backports/string"
|
||||
require "backports/2.4.0/string/match"
|
||||
|
||||
class String
|
||||
# String.chomp, but if result is empty: returns nil instead.
|
||||
|
@ -5,3 +5,5 @@ HOMEBREW_LIBRARY_PATH = Pathname(__dir__).realpath
|
||||
unless $LOAD_PATH.include?(HOMEBREW_LIBRARY_PATH.to_s)
|
||||
$LOAD_PATH.push(HOMEBREW_LIBRARY_PATH.to_s)
|
||||
end
|
||||
|
||||
require "vendor/bundle-standalone/bundler/setup"
|
||||
|
@ -1,4 +1,4 @@
|
||||
require "vendor/macho/macho"
|
||||
require "macho"
|
||||
require "os/mac/architecture_list"
|
||||
|
||||
module MachOShim
|
||||
|
@ -1,6 +1,6 @@
|
||||
require "open3"
|
||||
require "ostruct"
|
||||
require "vendor/plist/plist"
|
||||
require "plist"
|
||||
require "shellwords"
|
||||
|
||||
require "extend/io"
|
||||
|
4
Library/Homebrew/vendor/.bundle/config
vendored
Normal file
4
Library/Homebrew/vendor/.bundle/config
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
BUNDLE_PATH: "bundle-standalone"
|
||||
BUNDLE_DISABLE_SHARED_GEMS: "true"
|
||||
BUNDLE_BIN: "false"
|
5
Library/Homebrew/vendor/Gemfile
vendored
Normal file
5
Library/Homebrew/vendor/Gemfile
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "backports"
|
||||
gem "plist"
|
||||
gem "ruby-macho"
|
17
Library/Homebrew/vendor/Gemfile.lock
vendored
Normal file
17
Library/Homebrew/vendor/Gemfile.lock
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
backports (3.8.0)
|
||||
plist (3.3.0)
|
||||
ruby-macho (2.0.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
backports
|
||||
plist
|
||||
ruby-macho
|
||||
|
||||
BUNDLED WITH
|
||||
1.16.4
|
9
Library/Homebrew/vendor/bundle-standalone/bundler/setup.rb
vendored
Normal file
9
Library/Homebrew/vendor/bundle-standalone/bundler/setup.rb
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
require 'rbconfig'
|
||||
# ruby 1.8.7 doesn't define RUBY_ENGINE
|
||||
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
|
||||
ruby_version = RbConfig::CONFIG["ruby_version"]
|
||||
path = File.expand_path('..', __FILE__)
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/backports-3.8.0/lib"
|
||||
$:.unshift "#{path}/"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/plist-3.3.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-2.0.0/lib"
|
@ -1,4 +1,3 @@
|
||||
# Taken from https://github.com/marcandre/backports/blob/v3.8.0/lib/backports/2.4.0/string/match.rb
|
||||
unless String.method_defined? :match?
|
||||
class String
|
||||
def match?(*args)
|
6
Library/Homebrew/vendor/plist/plist.rb → Library/Homebrew/vendor/bundle-standalone/ruby/2.3.0/gems/plist-3.3.0/lib/plist.rb
vendored
Executable file → Normal file
6
Library/Homebrew/vendor/plist/plist.rb → Library/Homebrew/vendor/bundle-standalone/ruby/2.3.0/gems/plist-3.3.0/lib/plist.rb
vendored
Executable file → Normal file
@ -13,9 +13,9 @@ require 'base64'
|
||||
require 'cgi'
|
||||
require 'stringio'
|
||||
|
||||
require_relative 'plist/generator'
|
||||
require_relative 'plist/parser'
|
||||
require_relative 'plist/version'
|
||||
require 'plist/generator'
|
||||
require 'plist/parser'
|
||||
require 'plist/version'
|
||||
|
||||
module Plist
|
||||
end
|
0
Library/Homebrew/vendor/plist/plist/generator.rb → Library/Homebrew/vendor/bundle-standalone/ruby/2.3.0/gems/plist-3.3.0/lib/plist/generator.rb
vendored
Executable file → Normal file
0
Library/Homebrew/vendor/plist/plist/generator.rb → Library/Homebrew/vendor/bundle-standalone/ruby/2.3.0/gems/plist-3.3.0/lib/plist/generator.rb
vendored
Executable file → Normal file
0
Library/Homebrew/vendor/plist/plist/version.rb → Library/Homebrew/vendor/bundle-standalone/ruby/2.3.0/gems/plist-3.3.0/lib/plist/version.rb
vendored
Executable file → Normal file
0
Library/Homebrew/vendor/plist/plist/version.rb → Library/Homebrew/vendor/bundle-standalone/ruby/2.3.0/gems/plist-3.3.0/lib/plist/version.rb
vendored
Executable file → Normal file
Loading…
x
Reference in New Issue
Block a user