From 5548bc4756fecc9c837f0d89399b38ebd1ab6744 Mon Sep 17 00:00:00 2001 From: Roland Walker Date: Mon, 10 Feb 2014 10:57:55 -0500 Subject: [PATCH] test valid keys in _process_options add monkeypatch on Hash in utils.rb for `assert_valid_keys` method --- lib/cask/system_command.rb | 1 + lib/cask/utils.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/lib/cask/system_command.rb b/lib/cask/system_command.rb index f4d11dbb51f..0a075de7694 100644 --- a/lib/cask/system_command.rb +++ b/lib/cask/system_command.rb @@ -33,6 +33,7 @@ class Cask::SystemCommand end def self._process_options(executable, options) + options.assert_valid_keys :input, :print, :stderr, :args, :must_succeed, :sudo, :plist command = [executable] if options[:sudo] command.unshift('/usr/bin/sudo', '-E', '--') diff --git a/lib/cask/utils.rb b/lib/cask/utils.rb index ddd65d37627..07066318d68 100644 --- a/lib/cask/utils.rb +++ b/lib/cask/utils.rb @@ -10,6 +10,16 @@ class Tty end end +# monkeypatch Hash +class Hash + def assert_valid_keys(*valid_keys) + unknown_keys = self.keys - valid_keys + unless unknown_keys.empty? + raise "Unknown keys: #{unknown_keys.join(", :")}. Running `brew update; brew upgrade brew-cask` will likely fix it." + end + end +end + def odebug title, *sput if Cask.respond_to?(:debug) and Cask.debug width = Tty.width * 4 - 6