diff --git a/lib/cask.rb b/lib/cask.rb index af41fc5b9..55e685a83 100644 --- a/lib/cask.rb +++ b/lib/cask.rb @@ -3,9 +3,11 @@ require 'uri' class Cask; end class Cask::CLI; end -Dir[File.join(File.dirname(__FILE__), '**', '*.rb')].each { |file| - require file.sub(/^lib\/(.*).rb$/, '\1') -} +libdir = File.dirname(__FILE__) +rubyfiles = Dir[File.join(libdir, '**', '*.rb')] +rubyfiles.each do |file| + require file.sub(/^#{libdir}\/(.*).rb$/, '\1') +end class Cask include Cask::Actions diff --git a/lib/cask/installer.rb b/lib/cask/installer.rb index 28a13bf15..6f5325a16 100644 --- a/lib/cask/installer.rb +++ b/lib/cask/installer.rb @@ -22,7 +22,6 @@ class Cask::Installer def _with_extracted_mountpoints(path) if _dmg?(path) - require 'plist/parser' File.open(path) do |dmg| xml_str = `hdiutil mount -plist -nobrowse -readonly -noidme -mountrandom /tmp '#{dmg.path}'` hdiutil_info = Plist::parse_xml(xml_str) diff --git a/test/cask/installer_test.rb b/test/cask/installer_test.rb index 2b98487b4..91260929b 100644 --- a/test/cask/installer_test.rb +++ b/test/cask/installer_test.rb @@ -14,6 +14,19 @@ describe Cask::Installer do application = dest_path/'Caffeine.app' application.must_be :directory? end + + it "works with dmg-based casks" do + transmission = Cask.load('local-transmission') + + shutup do + Cask::Installer.install(transmission) + end + + dest_path = HOMEBREW_CELLAR/'local-transmission'/transmission.version + dest_path.must_be :directory? + application = dest_path/'Transmission.app' + application.must_be :directory? + end end describe "uninstall" do diff --git a/test/support/Casks/local-transmission.rb b/test/support/Casks/local-transmission.rb new file mode 100644 index 000000000..5b2726c18 --- /dev/null +++ b/test/support/Casks/local-transmission.rb @@ -0,0 +1,5 @@ +class LocalTransmission < Cask + url TestHelper.local_binary('transmission-2.61.dmg') + homepage 'http://example.com/local-transmission' + version '2.61' +end diff --git a/test/support/binaries/transmission-2.61.dmg b/test/support/binaries/transmission-2.61.dmg new file mode 100644 index 000000000..b9629f837 Binary files /dev/null and b/test/support/binaries/transmission-2.61.dmg differ