diff options
author | Miklós Fazekas <mfazekas@szemafor.com> | 2016-05-16 08:17:59 +0200 |
---|---|---|
committer | Miklós Fazekas <mfazekas@szemafor.com> | 2016-05-16 08:17:59 +0200 |
commit | e20060d8e0ae20c1ca1592a3477c268069ff3582 (patch) | |
tree | 1e2e5b0b1dffeb208c257d300ebb3428ba978a23 | |
parent | 18678f4b188e8e99f8e06539d5d2e1e79d840632 (diff) | |
parent | bfcc0fdbacd2f049b718bb8f204d07fb85520c43 (diff) | |
download | net-ssh-e20060d8e0ae20c1ca1592a3477c268069ff3582.tar.gz |
Merge pull request #371 from KaneMorgan/default-options
set default options before checking for nils
-rw-r--r-- | lib/net/ssh.rb | 18 | ||||
-rw-r--r-- | test/start/test_options.rb | 11 |
2 files changed, 20 insertions, 9 deletions
diff --git a/lib/net/ssh.rb b/lib/net/ssh.rb index 0775fab..e1004ef 100644 --- a/lib/net/ssh.rb +++ b/lib/net/ssh.rb @@ -207,6 +207,8 @@ module Net raise ArgumentError, "invalid option(s): #{invalid_options.join(', ')}" end + assign_defaults(options) + if options.values.include? nil nil_options = options.keys.select { |k| options[k].nil? } raise ArgumentError, "Value(s) have been set to nil: #{nil_options.join(', ')}" @@ -216,17 +218,10 @@ module Net options = configuration_for(host, options.fetch(:config, true)).merge(options) host = options.fetch(:host_name, host) - if !options.key?(:logger) - options[:logger] = Logger.new(STDERR) - options[:logger].level = Logger::FATAL - end - if options[:non_interactive] options[:number_of_password_prompts] = 0 end - options[:password_prompt] ||= Prompt.default(options) - if options[:verbose] options[:logger].level = case options[:verbose] when Fixnum then options[:verbose] @@ -278,5 +273,14 @@ module Net Net::SSH::Config.for(host, files) end + + def self.assign_defaults(options) + if !options[:logger] + options[:logger] = Logger.new(STDERR) + options[:logger].level = Logger::FATAL + end + + options[:password_prompt] ||= Prompt.default(options) + end end end diff --git a/test/start/test_options.rb b/test/start/test_options.rb index ce911b5..fbce198 100644 --- a/test/start/test_options.rb +++ b/test/start/test_options.rb @@ -55,17 +55,24 @@ module NetSSH def test_constructor_should_reject_options_set_to_nil assert_raises(ArgumentError) do - options = { :remote_user => nil} + options = { :remote_user => nil } Net::SSH.start('localhost', 'testuser', options) end end def test_constructor_should_reject_invalid_options assert_raises(ArgumentError) do - options = { :some_invalid_option => "some setting"} + options = { :some_invalid_option => "some setting" } Net::SSH.start('localhost', 'testuser', options) end end + + def test_constructor_should_set_default_options + options = { :logger => nil, :password_prompt => nil } + Net::SSH.start('localhost', 'testuser', options) + assert !options[:logger].nil? + assert !options[:password_prompt].nil? + end end end |