aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-04-15 15:00:57 -0500
committerJack Nagel2013-04-15 15:00:57 -0500
commitf4ab1431dc49cea37650ab6f1a475231db2eb72b (patch)
treecd340be0a84c28cc27994c78acef8fb4e01fd2d3 /Library
parent39490c9499d1f97fe2b21a05bcb7b65704e86e4b (diff)
downloadhomebrew-f4ab1431dc49cea37650ab6f1a475231db2eb72b.tar.bz2
Avoid expensive Pathname concatenation
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/download_strategy.rb10
-rw-r--r--Library/Homebrew/formula.rb23
-rw-r--r--Library/Homebrew/os/mac/xcode.rb12
-rw-r--r--Library/Homebrew/os/mac/xquartz.rb12
4 files changed, 30 insertions, 27 deletions
diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb
index 013cc4ab2..9d6ebb931 100644
--- a/Library/Homebrew/download_strategy.rb
+++ b/Library/Homebrew/download_strategy.rb
@@ -37,13 +37,13 @@ class CurlDownloadStrategy < AbstractDownloadStrategy
super
if name.to_s.empty? || name == '__UNKNOWN__'
- @tarball_path = HOMEBREW_CACHE + File.basename(@url)
+ @tarball_path = Pathname.new("#{HOMEBREW_CACHE}/#{File.basename(@url)}")
else
- @tarball_path = HOMEBREW_CACHE + "#{name}-#{package.version}#{ext}"
+ @tarball_path = Pathname.new("#{HOMEBREW_CACHE}/#{name}-#{package.version}#{ext}")
end
@mirrors = package.mirrors
- @temporary_path = Pathname("#@tarball_path.incomplete")
+ @temporary_path = Pathname.new("#@tarball_path.incomplete")
@local_bottle_path = nil
end
@@ -213,7 +213,7 @@ class SubversionDownloadStrategy < AbstractDownloadStrategy
if name.to_s.empty? || name == '__UNKNOWN__'
raise NotImplementedError, "strategy requires a name parameter"
else
- @co = HOMEBREW_CACHE + "#{name}--svn"
+ @co = Pathname.new("#{HOMEBREW_CACHE}/#{name}--svn")
end
@co += "-HEAD" if ARGV.build_head?
@@ -316,7 +316,7 @@ class GitDownloadStrategy < AbstractDownloadStrategy
if name.to_s.empty? || name == '__UNKNOWN__'
raise NotImplementedError, "strategy requires a name parameter"
else
- @clone = HOMEBREW_CACHE + "#{name}--git"
+ @clone = Pathname.new("#{HOMEBREW_CACHE}/#{name}--git")
end
end
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 8217f30c9..62ec065ac 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -116,16 +116,16 @@ class Formula
end
def linked_keg
- HOMEBREW_REPOSITORY/'Library/LinkedKegs'/name
+ Pathname.new("#{HOMEBREW_LIBRARY}/LinkedKegs/#{name}")
end
def installed_prefix
devel_prefix = unless devel.nil?
- HOMEBREW_CELLAR/name/devel.version
+ Pathname.new("#{HOMEBREW_CELLAR}/#{name}/#{devel.version}")
end
head_prefix = unless head.nil?
- HOMEBREW_CELLAR/name/head.version
+ Pathname.new("#{HOMEBREW_CELLAR}/#{name}/#{head.version}")
end
if active_spec == head || head and head_prefix.directory?
@@ -143,7 +143,7 @@ class Formula
end
def prefix
- HOMEBREW_CELLAR+name+version
+ Pathname.new("#{HOMEBREW_CELLAR}/#{name}/#{version}")
end
def rack; prefix.parent end
@@ -185,7 +185,9 @@ class Formula
# Defined and active build-time options.
def build; self.class.build; end
- def opt_prefix; HOMEBREW_PREFIX/:opt/name end
+ def opt_prefix
+ Pathname.new("#{HOMEBREW_PREFIX}/opt/#{name}")
+ end
def download_strategy
active_spec.download_strategy
@@ -350,13 +352,14 @@ class Formula
def self.canonical_name name
name = name.to_s if name.kind_of? Pathname
- formula_with_that_name = HOMEBREW_REPOSITORY+"Library/Formula/#{name}.rb"
- possible_alias = HOMEBREW_REPOSITORY+"Library/Aliases/#{name}"
- possible_cached_formula = HOMEBREW_CACHE_FORMULA+"#{name}.rb"
+ formula_with_that_name = Pathname.new("#{HOMEBREW_REPOSITORY}/Library/Formula/#{name}.rb")
+ possible_alias = Pathname.new("#{HOMEBREW_REPOSITORY}/Library/Aliases/#{name}")
+ possible_cached_formula = Pathname.new("#{HOMEBREW_CACHE_FORMULA}/#{name}.rb")
if name.include? "/"
if name =~ %r{(.+)/(.+)/(.+)}
- tapd = HOMEBREW_REPOSITORY/"Library/Taps"/"#$1-#$2".downcase
+ tap_name = "#$1-#$2".downcase
+ tapd = Pathname.new("#{HOMEBREW_REPOSITORY}/Library/Taps/#{tap_name}")
tapd.find_formula do |relative_pathname|
return "#{tapd}/#{relative_pathname}" if relative_pathname.stem.to_s == $3
end if tapd.directory?
@@ -472,7 +475,7 @@ class Formula
end
def self.path name
- HOMEBREW_REPOSITORY+"Library/Formula/#{name.downcase}.rb"
+ Pathname.new("#{HOMEBREW_REPOSITORY}/Library/Formula/#{name.downcase}.rb")
end
def deps; self.class.dependencies.deps; end
diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb
index a89faa002..59bc199b2 100644
--- a/Library/Homebrew/os/mac/xcode.rb
+++ b/Library/Homebrew/os/mac/xcode.rb
@@ -33,15 +33,15 @@ module MacOS::Xcode extend self
def prefix
@prefix ||= begin
path = Pathname.new(folder)
- if path.absolute? and (path/'usr/bin/make').executable?
+ if path.absolute? and File.executable? "#{path}/usr/bin/make"
path
elsif File.executable? '/Developer/usr/bin/make'
# we do this to support cowboys who insist on installing
# only a subset of Xcode
- Pathname.new '/Developer'
- elsif (V4_BUNDLE_PATH/'Contents/Developer/usr/bin/make').executable?
+ Pathname.new('/Developer')
+ elsif File.executable? "#{V4_BUNDLE_PATH}/Contents/Developer/usr/bin/make"
# fallback for broken Xcode 4.3 installs
- V4_BUNDLE_PATH/'Contents/Developer'
+ Pathname.new("#{V4_BUNDLE_PATH}/Contents/Developer")
else
# Ask Spotlight where Xcode is. If the user didn't install the
# helper tools and installed Xcode in a non-conventional place, this
@@ -51,7 +51,7 @@ module MacOS::Xcode extend self
unless path.nil?
path += "Contents/Developer"
- path if (path/'usr/bin/make').executable?
+ path if File.executable? "#{path}/usr/bin/make"
end
end
end
@@ -76,7 +76,7 @@ module MacOS::Xcode extend self
# this shortcut makes version work for people who don't realise you
# need to install the CLI tools
- xcode43build = prefix/'usr/bin/xcodebuild'
+ xcode43build = Pathname.new("#{prefix}/usr/bin/xcodebuild")
if xcode43build.file?
`#{xcode43build} -version 2>/dev/null` =~ /Xcode (\d(\.\d)*)/
return $1 if $1
diff --git a/Library/Homebrew/os/mac/xquartz.rb b/Library/Homebrew/os/mac/xquartz.rb
index a515d8915..f5b85afd2 100644
--- a/Library/Homebrew/os/mac/xquartz.rb
+++ b/Library/Homebrew/os/mac/xquartz.rb
@@ -70,27 +70,27 @@ module MacOS::X11 extend self
# Confusingly, executables (e.g. config scripts) are only found under
# /opt/X11/bin or /usr/X11/bin in all cases.
def bin
- prefix/'bin'
+ Pathname.new("#{prefix}/bin")
end
def include
@include ||= if use_sdk?
- MacOS.sdk_path/'usr/X11/include'
+ Pathname.new("#{MacOS.sdk_path}/usr/X11/include")
else
- prefix/'include'
+ Pathname.new("#{prefix}/include")
end
end
def lib
@lib ||= if use_sdk?
- MacOS.sdk_path/'usr/X11/lib'
+ Pathname.new("#{MacOS.sdk_path}/usr/X11/lib")
else
- prefix/'lib'
+ Pathname.new("#{prefix}/lib")
end
end
def share
- prefix/'share'
+ Pathname.new("#{prefix}/share")
end
private