diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index d39b692adc..8ca86d39aa 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -1,5 +1,6 @@ require 'pathname' require 'mach' +require 'resource' # we enhance pathname to make our code more readable class Pathname @@ -12,6 +13,8 @@ class Pathname case src when Resource src.stage(self) + when Resource::Partial + src.resource.stage { install(*src.files) } when Array if src.empty? opoo "tried to install empty array to #{self}" diff --git a/Library/Homebrew/resource.rb b/Library/Homebrew/resource.rb index 238d55ddfd..5221f2769d 100644 --- a/Library/Homebrew/resource.rb +++ b/Library/Homebrew/resource.rb @@ -62,6 +62,12 @@ class Resource end end + Partial = Struct.new(:resource, :files) + + def files(*files) + Partial.new(self, files) + end + # For brew-fetch and others. def fetch # Ensure the cache exists