diff options
author | elijah <elijah@riseup.net> | 2013-06-22 15:52:48 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2013-06-22 15:52:48 -0700 |
commit | 0ffdf42cf2171deb0bdd4c54f8281c1c1257ee86 (patch) | |
tree | b2a6ebe57fbca426104ae364a3a5381e731c4361 /lib/leap_cli/config/object.rb | |
parent | cae55de7bf25d60f4f504c658b936bbbd94ff464 (diff) |
improve `leap inspect`
Diffstat (limited to 'lib/leap_cli/config/object.rb')
-rw-r--r-- | lib/leap_cli/config/object.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/leap_cli/config/object.rb b/lib/leap_cli/config/object.rb index 1edef3f..00997b1 100644 --- a/lib/leap_cli/config/object.rb +++ b/lib/leap_cli/config/object.rb @@ -184,6 +184,21 @@ module LeapCli self.deep_merge!(object, true) end + # + # Make a copy of ourselves, except only including the specified keys. + # + # Also, the result is flattened to a single hash, so a key of 'a.b' becomes 'a_b' + # + def pick(*keys) + keys.map(&:to_s).inject(self.class.new(@manager)) do |hsh, key| + value = self.get(key) + if !value.nil? + hsh[key.gsub('.','_')] = value + end + hsh + end + end + protected # |