From 50d2f632d9157c953dcbaeb33c5b79ef50fee38a Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Tue, 17 Sep 2013 21:25:43 -0500 Subject: [PATCH] Allow partial installation of resources --- Library/Homebrew/extend/pathname.rb | 3 +++ Library/Homebrew/resource.rb | 6 ++++++ 2 files changed, 9 insertions(+) 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