cliutils 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.yardoc/checksums +11 -11
  4. data/.yardoc/object_types +0 -0
  5. data/.yardoc/objects/root.dat +0 -0
  6. data/Gemfile.lock +12 -33
  7. data/README.md +1 -1
  8. data/Rakefile +36 -31
  9. data/cliutils.gemspec +3 -2
  10. data/lib/cliutils/configuration.rb +13 -31
  11. data/lib/cliutils/configurator.rb +23 -62
  12. data/lib/cliutils/ext/Hash+Extensions.rb +39 -78
  13. data/lib/cliutils/ext/Logger+Extensions.rb +6 -11
  14. data/lib/cliutils/ext/String+Extensions.rb +25 -13
  15. data/lib/cliutils/logger-delegator.rb +15 -39
  16. data/lib/cliutils/messenging.rb +10 -28
  17. data/lib/cliutils/prefs.rb +18 -43
  18. data/lib/cliutils/pretty-io.rb +59 -127
  19. data/lib/cliutils/version.rb +2 -1
  20. data/lib/cliutils.rb +2 -0
  21. metadata +20 -32
  22. data/bin/cliutils +0 -38
  23. data/doc/CLIUtils/Configuration.html +0 -373
  24. data/doc/CLIUtils/Configurator.html +0 -873
  25. data/doc/CLIUtils/LoggerDelegator.html +0 -560
  26. data/doc/CLIUtils/Messenging.html +0 -396
  27. data/doc/CLIUtils/Prefs.html +0 -609
  28. data/doc/CLIUtils/PrettyIO.html +0 -1333
  29. data/doc/CLIUtils.html +0 -131
  30. data/doc/Hash.html +0 -672
  31. data/doc/Logger.html +0 -233
  32. data/doc/String.html +0 -562
  33. data/doc/_index.html +0 -207
  34. data/doc/class_list.html +0 -54
  35. data/doc/css/common.css +0 -1
  36. data/doc/css/full_list.css +0 -57
  37. data/doc/css/style.css +0 -339
  38. data/doc/file.README.html +0 -415
  39. data/doc/file_list.html +0 -56
  40. data/doc/frames.html +0 -26
  41. data/doc/index.html +0 -415
  42. data/doc/js/app.js +0 -219
  43. data/doc/js/full_list.js +0 -178
  44. data/doc/js/jquery.js +0 -4
  45. data/doc/method_list.html +0 -389
  46. data/doc/top-level-namespace.html +0 -114
@@ -1,49 +1,29 @@
1
1
  module CLIUtils
2
- # ======================================================
3
- # LoggerDelegator Class
4
- #
5
- # Manages any configuration values and the flat YAML file
6
- # into which they get stored.
7
- # ======================================================
2
+ # LoggerDelegator Class
3
+ # Delegates certain Logger methods to a number of different
4
+ # targets.
8
5
  class LoggerDelegator
9
- # ====================================================
10
- # Attributes
11
- # ====================================================
12
- attr_reader :devices
6
+ attr_reader :targets
13
7
 
14
- # ====================================================
15
- # Methods
16
- # ====================================================
17
- # ----------------------------------------------------
18
- # initialize method
19
- #
20
- # Initializer
21
- # @param *targets The endpoints to delegate to
22
- # @return void
23
- # ----------------------------------------------------
8
+ # Initializes and creates methods for the passed targets.
9
+ # @param [Logger] targets The endpoints to delegate to
10
+ # @return [void]
24
11
  def initialize(*targets)
25
12
  @targets = targets
26
13
  LoggerDelegator.delegate
27
14
  end
28
15
 
29
- # ----------------------------------------------------
30
- # attach method
31
- #
32
- # Attaches a new target to delegate to.
33
- # @return void
34
- # ----------------------------------------------------
16
+ # Attaches a new target to delegate to.
17
+ # @param [Logger] target The targets to delegate to
18
+ # @return [void]
35
19
  def attach(target)
36
20
  @targets << target
37
21
  LoggerDelegator.delegate
38
22
  end
39
23
 
40
- # ----------------------------------------------------
41
- # delegate_all method
42
- #
43
- # Creates delegator methods for all of the methods
44
- # on IO.
45
- # @return void
46
- # ----------------------------------------------------
24
+ # Creates delegator methods for a specific list of Logger
25
+ # functions.
26
+ # @return [void]
47
27
  def self.delegate
48
28
  %w(log debug info warn error section success).each do |m|
49
29
  define_method(m) do |*args|
@@ -52,12 +32,8 @@ module CLIUtils
52
32
  end
53
33
  end
54
34
 
55
- # ----------------------------------------------------
56
- # detach method
57
- #
58
- # Detaches a delegation target.
59
- # @return void
60
- # ----------------------------------------------------
35
+ # Detaches a delegation target.
36
+ # @return [void]
61
37
  def detach(target)
62
38
  @targets.delete(target)
63
39
  LoggerDelegator.delegate
@@ -1,33 +1,19 @@
1
1
  module CLIUtils
2
- # ======================================================
3
2
  # CLIMessenger Module
4
- # Outputs color-coordinated messages to a CLI
5
- # ======================================================
3
+ # Outputs coordinated messages to a variety of targets.
6
4
  module Messenging
7
5
  include CLIUtils::PrettyIO
8
6
 
9
- # ====================================================
10
- # Methods
11
- # ====================================================
12
- # ----------------------------------------------------
13
- # included method
14
- #
15
- # Hook called when this module gets mixed in; extends
16
- # the includer with the methods defined here.
17
- # @param k The includer
18
- # @return Void
19
- # ----------------------------------------------------
7
+ # Hook that triggers when this module is included.
8
+ # @param [Object] k The includer object
9
+ # @return [void]
20
10
  def self.included(k)
21
11
  k.extend(self)
22
12
  end
23
13
 
24
- # ----------------------------------------------------
25
- # default_instance method
26
- #
27
- # Returns a default instance of LoggerDelegator that
28
- # delegates to STDOUT only.
29
- # @return LoggerDelegator
30
- # ----------------------------------------------------
14
+ # Returns a default instance of LoggerDelegator that
15
+ # delegates to STDOUT only.
16
+ # @return [LoggerDelegator]
31
17
  def default_instance
32
18
  stdout_logger = Logger.new(STDOUT)
33
19
  stdout_logger.formatter = proc do |severity, datetime, progname, msg|
@@ -37,13 +23,9 @@ module CLIUtils
37
23
  LoggerDelegator.new(stdout_logger)
38
24
  end
39
25
 
40
- # ----------------------------------------------------
41
- # messenger method
42
- #
43
- # Singleton method to return (or initialize, if needed)
44
- # a LoggerDelegator.
45
- # @return LoggerDelegator
46
- # ----------------------------------------------------
26
+ # Singleton method to return (or initialize, if needed)
27
+ # a LoggerDelegator.
28
+ # @return [LoggerDelegator]
47
29
  def messenger
48
30
  @messenger ||= default_instance
49
31
  end
@@ -1,26 +1,13 @@
1
1
  module CLIUtils
2
- # ======================================================
3
- # PrefManager Class
4
- #
5
- # Engine to derive preferences from a YAML file, deliver
6
- # those to a user via a prompt, and collect the results.
7
- # ======================================================
2
+ # Engine to derive preferences from a YAML file, deliver
3
+ # those to a user via a prompt, and collect the results.
8
4
  class Prefs
9
5
  include PrettyIO
10
- # ====================================================
11
- # Attributes
12
- # ====================================================
13
6
  attr_reader :answers, :config_path, :prompts
14
7
 
15
- # ====================================================
16
- # Methods
17
- # ====================================================
18
- # ----------------------------------------------------
19
- # initialize method
20
- #
21
- # Reads prompt data from YAML file.
22
- # @return Void
23
- # ----------------------------------------------------
8
+ # Reads prompt data from and stores it.
9
+ # @param [<String, Array>] data Either a filepath or an array
10
+ # @return [void]
24
11
  def initialize(data)
25
12
  @answers = []
26
13
  @prompts = {}
@@ -45,15 +32,11 @@ module CLIUtils
45
32
  end
46
33
  end
47
34
 
48
- # ----------------------------------------------------
49
- # ask method
50
- #
51
- # Runs through all of the prompt questions and collects
52
- # answers from the user. Note that all questions w/o
53
- # requirements are examined first; once those are
54
- # complete, questions w/ requirements are examined.
55
- # @return Void
56
- # ----------------------------------------------------
35
+ # Runs through all of the prompt questions and collects
36
+ # answers from the user. Note that all questions w/o
37
+ # requirements are examined first; once those are
38
+ # complete, questions w/ requirements are examined.
39
+ # @return [void]
57
40
  def ask
58
41
  @prompts[:prompts].reject { |p| p[:requirements] }.each do |p|
59
42
  _deliver_prompt(p)
@@ -66,14 +49,10 @@ module CLIUtils
66
49
 
67
50
  private
68
51
 
69
- # ----------------------------------------------------
70
- # _deliver_prompt method
71
- #
72
- # Utility method for prompting the user to answer the
73
- # question (taking into account any options).
74
- # @param p The prompt
75
- # @return Void
76
- # ----------------------------------------------------
52
+ # Utility method for prompting the user to answer the
53
+ # question (taking into account any options).
54
+ # @param [Hash] p The prompt
55
+ # @return [void]
77
56
  def _deliver_prompt(p)
78
57
  if p[:options].nil?
79
58
  pref = prompt(p[:prompt], p[:default])
@@ -93,14 +72,10 @@ module CLIUtils
93
72
  @answers << p
94
73
  end
95
74
 
96
- # ----------------------------------------------------
97
- # _requirements_fulfilled? method
98
- #
99
- # Utility method for determining whether a prompt's
100
- # requirements have already been fulfilled.
101
- # @param p The prompt
102
- # @return Void
103
- # ----------------------------------------------------
75
+ # Utility method for determining whether a prompt's
76
+ # requirements have already been fulfilled.
77
+ # @param [Hash] p The prompt
78
+ # @return [void]
104
79
  def _requirements_fulfilled?(p)
105
80
  ret = true
106
81
  p[:requirements].each do |req|
@@ -7,36 +7,22 @@ end
7
7
  require 'readline'
8
8
 
9
9
  module CLIUtils
10
- # ======================================================
11
- # CLIMessenger Module
12
- # Outputs color-coordinated messages to a CLI
13
- # ======================================================
10
+ # CLIMessenger Module
11
+ # Outputs color-coordinated messages to a CLI
14
12
  module PrettyIO
15
13
  @@wrap = true
16
14
  @@wrap_char_limit = 40
17
15
 
18
- # ====================================================
19
- # Methods
20
- # ====================================================
21
- # ----------------------------------------------------
22
- # included method
23
- #
24
- # Hook called when this module gets mixed in; extends
25
- # the includer with the methods defined here.
26
- # @param k The includer
27
- # @return Void
28
- # ----------------------------------------------------
16
+ # Hook that triggers when this module is included.
17
+ # @param [Object] k The includer object
18
+ # @return [void]
29
19
  def self.included(k)
30
20
  k.extend(self)
31
21
  end
32
22
 
33
- # ----------------------------------------------------
34
- # color_chart method
35
- #
36
- # Displays a chart of all the possible ANSI foreground
37
- # and background color combinations.
38
- # @return Void
39
- # ----------------------------------------------------
23
+ # Displays a chart of all the possible ANSI foreground
24
+ # and background color combinations.
25
+ # @return [void]
40
26
  def color_chart
41
27
  [0, 1, 4, 5, 7].each do |attr|
42
28
  puts '----------------------------------------------------------------'
@@ -50,46 +36,31 @@ module CLIUtils
50
36
  end
51
37
  end
52
38
 
53
- # ----------------------------------------------------
54
- # debug method
55
- #
56
- # Empty method so that Messenging doesn't freak
57
- # out when passed a debug message.
58
- # @return Void
59
- # ----------------------------------------------------
39
+ # Empty method so that Messenging doesn't freak
40
+ # out when passed a debug message.
41
+ # @return [void]
60
42
  def debug(m); end
61
43
 
62
- # ----------------------------------------------------
63
- # error method
64
- #
65
- # Outputs a formatted-red error message.
66
- # @param m The message to output
67
- # @return Void
68
- # ----------------------------------------------------
44
+ # Outputs a formatted-red error message.
45
+ # @param [String] m The message to output
46
+ # @return [void]
69
47
  def error(m)
70
48
  puts _word_wrap(m, '# ').red
71
49
  end
72
50
 
73
- # ----------------------------------------------------
74
- # info method
75
- #
76
- # Outputs a formatted-blue informational message.
77
- # @param m The message to output
78
- # @return Void
79
- # ----------------------------------------------------
51
+ # Outputs a formatted-blue informational message.
52
+ # @param [String] m The message to output
53
+ # @return [void]
80
54
  def info(m)
81
55
  puts _word_wrap(m, '# ').blue
82
56
  end
83
57
 
84
- # ----------------------------------------------------
85
- # info_block method
86
- #
87
- # Wraps a block in an opening and closing info message.
88
- # @param m1 The opening message to output
89
- # @param m2 The closing message to output
90
- # @param multiline Whether the message should be multiline
91
- # @return Void
92
- # ----------------------------------------------------
58
+ # Wraps a block in an opening and closing info message.
59
+ # @param [String] m1 The opening message to output
60
+ # @param [String] m2 The closing message to output
61
+ # @param [<True, False>] multiline Whether the message should be multiline
62
+ # @yield
63
+ # @return [void]
93
64
  def info_block(m1, m2 = 'Done.', multiline = false)
94
65
  if block_given?
95
66
  if multiline
@@ -110,24 +81,17 @@ module CLIUtils
110
81
  end
111
82
  end
112
83
 
113
- # ----------------------------------------------------
114
- # log method
115
- #
116
- # Empty method so that Messenging doesn't freak
117
- # out when passed a debug message.
118
- # @return Void
119
- # ----------------------------------------------------
84
+ # Empty method so that Messenging doesn't freak
85
+ # out when passed a debug message.
86
+ # @return [void]
120
87
  def log(m); end
121
88
 
122
- # ----------------------------------------------------
123
- # prompt method
124
- #
125
- # Outputs a prompt, collects the user's response, and
126
- # returns it.
127
- # @param prompt The prompt to output
128
- # @param default The default option
129
- # @return String
130
- # ----------------------------------------------------
89
+ # Outputs a prompt, collects the user's response, and
90
+ # returns it.
91
+ # @param [String] prompt The prompt to output
92
+ # @param [String] default The default option
93
+ # @param [String] start_dir The directory to start from for autocompletion
94
+ # @return [String]
131
95
  def prompt(prompt, default = nil, start_dir = '')
132
96
  Readline.completion_append_character = nil
133
97
  Readline.completion_proc = lambda do |prefix|
@@ -144,27 +108,18 @@ module CLIUtils
144
108
  end
145
109
  end
146
110
 
147
- # ----------------------------------------------------
148
- # section method
149
- #
150
- # Outputs a formatted-purple section message.
151
- # @param m The message to output
152
- # @return Void
153
- # ----------------------------------------------------
111
+ # Outputs a formatted-purple section message.
112
+ # @param [String] m The message to output
113
+ # @return [void]
154
114
  def section(m)
155
115
  puts _word_wrap(m, '---> ').purple
156
116
  end
157
117
 
158
- # ----------------------------------------------------
159
- # section_block method
160
- #
161
- # Wraps a block in an opening and closing section
162
- # message.
163
- # @param m1 The opening message to output
164
- # @param m2 The closing message to output
165
- # @param multiline A multiline message or not
166
- # @return Void
167
- # ----------------------------------------------------
118
+ # Wraps a block in an opening and closing section message.
119
+ # @param [String] m The opening message to output
120
+ # @param [<True, False>] multiline Whether the message should be multiline
121
+ # @yield
122
+ # @return [void]
168
123
  def section_block(m, multiline = true)
169
124
  if block_given?
170
125
  if multiline
@@ -179,70 +134,47 @@ module CLIUtils
179
134
  end
180
135
  end
181
136
 
182
- # ----------------------------------------------------
183
- # success method
184
- #
185
- # Outputs a formatted-green success message.
186
- # @param m The message to output
187
- # @return Void
188
- # ----------------------------------------------------
137
+ # Outputs a formatted-green success message.
138
+ # @param [String] m The message to output
139
+ # @return [void]
189
140
  def success(m)
190
141
  puts _word_wrap(m, '# ').green
191
142
  end
192
143
 
193
- # ----------------------------------------------------
194
- # warning method
195
- #
196
- # Outputs a formatted-yellow warning message.
197
- # @param m The message to output
198
- # @return Void
199
- # ----------------------------------------------------
144
+ # Outputs a formatted-yellow warning message.
145
+ # @param [String] m The message to output
146
+ # @return [void]
200
147
  def warn(m)
201
148
  puts _word_wrap(m, '# ').yellow
202
149
  end
203
150
 
204
- # ----------------------------------------------------
205
- # wrap method
206
- #
207
- # Toggles wrapping on or off
208
- # @return Integer
209
- # ----------------------------------------------------
151
+ # Toggles wrapping on or off
152
+ # @param [<True, False>] on
153
+ # @return [void]
210
154
  def self.wrap(on)
211
155
  @@wrap = on
212
156
  end
213
157
 
214
- # ----------------------------------------------------
215
- # wrap_limit method
216
- #
217
- # Returns the current character wrap amount
218
- # @return Integer
219
- # ----------------------------------------------------
158
+ # Returns the current character wrap amount
159
+ # @return [Integer]
220
160
  def self.wrap_limit
221
161
  @@wrap_char_limit
222
162
  end
223
163
 
224
- # ----------------------------------------------------
225
- # wrap_at method
226
- #
227
- # Sets the number of characters at which to wrap
228
- # @return Integer
229
- # ----------------------------------------------------
164
+ # Sets the number of characters at which to wrap
165
+ # @param [Integer] chars The number of chars to output before wrapping
166
+ # @return [void]
230
167
  def self.wrap_at(chars)
231
168
  @@wrap_char_limit = chars
232
169
  end
233
170
 
234
171
  private
235
172
 
236
- # ----------------------------------------------------
237
- # _word_wrap method
238
- #
239
- # Outputs a wrapped string (where each line is limited
240
- # to a certain number of characters).
241
- # @param text The text to wrap
242
- # @param prefix_str The prefix for each line
243
- # @param line_width The number of characters per line
244
- # @return String
245
- # ----------------------------------------------------
173
+ # Outputs a wrapped string (where each line is limited
174
+ # to a certain number of characters).
175
+ # @param [String] text The text to wrap
176
+ # @param [String] prefix_str The prefix for each line
177
+ # @return [String]
246
178
  def _word_wrap(text, prefix_str)
247
179
  if @@wrap
248
180
  return text if @@wrap_char_limit <= 0
@@ -1,3 +1,4 @@
1
1
  module CLIUtils
2
- VERSION = "1.0.2"
2
+ # The current version of the gem
3
+ VERSION = "1.0.3"
3
4
  end
data/lib/cliutils.rb CHANGED
@@ -10,6 +10,8 @@ require 'cliutils/messenging'
10
10
  require 'cliutils/prefs'
11
11
  require 'cliutils/version'
12
12
 
13
+ # The CLIUtils module, which wraps everything
14
+ # in this gem.
13
15
  module CLIUtils
14
16
 
15
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cliutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Bach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-29 00:00:00.000000000 Z
11
+ date: 2014-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rdoc
28
+ name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.9'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.9'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,12 +52,25 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.7.4
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.7.4
55
69
  description: A library of functionality designed to alleviate common tasks and headaches
56
70
  when developing command-line (CLI) apps in Ruby.
57
71
  email:
58
72
  - bachya1208@googlemail.com
59
- executables:
60
- - cliutils
73
+ executables: []
61
74
  extensions: []
62
75
  extra_rdoc_files:
63
76
  - README.md
@@ -72,32 +85,7 @@ files:
72
85
  - LICENSE.txt
73
86
  - README.md
74
87
  - Rakefile
75
- - bin/cliutils
76
88
  - cliutils.gemspec
77
- - doc/CLIUtils.html
78
- - doc/CLIUtils/Configuration.html
79
- - doc/CLIUtils/Configurator.html
80
- - doc/CLIUtils/LoggerDelegator.html
81
- - doc/CLIUtils/Messenging.html
82
- - doc/CLIUtils/Prefs.html
83
- - doc/CLIUtils/PrettyIO.html
84
- - doc/Hash.html
85
- - doc/Logger.html
86
- - doc/String.html
87
- - doc/_index.html
88
- - doc/class_list.html
89
- - doc/css/common.css
90
- - doc/css/full_list.css
91
- - doc/css/style.css
92
- - doc/file.README.html
93
- - doc/file_list.html
94
- - doc/frames.html
95
- - doc/index.html
96
- - doc/js/app.js
97
- - doc/js/full_list.js
98
- - doc/js/jquery.js
99
- - doc/method_list.html
100
- - doc/top-level-namespace.html
101
89
  - features/cli_manager.feature
102
90
  - features/step_definitions/cli_manager_steps.rb
103
91
  - features/support/env.rb
data/bin/cliutils DELETED
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'cliutils.rb'
3
-
4
- # include CLIUtils::PrettyIO
5
- #
6
- # warn('test')
7
-
8
- include CLIUtils::Messenging
9
- # #
10
- # file_logger = Logger.new('file.txt')
11
- # puts ''
12
- # messenger.info('This should only appear in STDOUT.')
13
- # messenger.attach(file_logger)
14
- # messenger.warn('This warning should appear in STDOUT and file.txt')
15
- # messenger.error('This error should appear in STDOUT and file.txt')
16
- # messenger.debug('This debug message should only appear in file.txt')
17
- # messenger.detach(file_logger)
18
- # messenger.section('This section message should appear only in STDOUT')
19
- # puts ''
20
- #
21
- include CLIUtils::Configuration
22
-
23
- load_configuration('~/.test')
24
- configuration.add_section(:user_data)
25
- configuration.add_section(:program_data)
26
- configuration.delete_section(:program_data)
27
- configuration.user_data.merge!(username: 'bob')
28
- configuration.save
29
- #
30
- # p = CLIUtils::Prefs.new(File.join(File.expand_path(File.dirname(__FILE__)),'..', 'test/test_files/prefstest.yaml'))
31
- #
32
- # # arr = [{:prompt=>"What is the hostname of your DD-WRT router?", :default=>"192.168.1.1", :key=>"hostname", :section=>"ssh_info"}, {:prompt=>"What is the SSH username of your DD-WRT router?", :default=>"root", :key=>"username", :section=>"ssh_info"}, {:prompt=>"What SSH port does your DD-WRT router use?", :default=>22, :key=>"port", :section=>"ssh_info"}, {:prompt=>"How do you use password or key authentication?", :default=>"password", :key=>"auth_method", :section=>"ssh_info", :options=>["password", "key"]}, {:prompt=>"Where is your key located?", :default=>"~/.ssh", :key=>"key_location", :section=>"ssh_info", :requirements=>[{:key=>"auth_method", :value=>"key"}]}, {:prompt=>"What is your password?", :key=>"password", :section=>"ssh_info", :requirements=>[{:key=>"auth_method", :value=>"password"}]}]
33
- # # p = CLIUtils::Prefs.new(arr)
34
- #
35
- # # p p.prompts
36
- # p.ask
37
- # configuration.ingest_prefs(p)
38
- # configuration.save