diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/knife/core/generic_presenter.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/chef/knife/core/generic_presenter.rb b/lib/chef/knife/core/generic_presenter.rb index a1aeadb0f3..f3ea0f0d6c 100644 --- a/lib/chef/knife/core/generic_presenter.rb +++ b/lib/chef/knife/core/generic_presenter.rb @@ -178,10 +178,13 @@ class Chef nested_value_spec.split(".").each do |attr| if data.nil? nil # don't get no method error on nil - elsif data.respond_to?(attr.to_sym) - data = data.send(attr.to_sym) + # Must check :[] before attr because spec can include + # `keys` - want the key named `keys`, not a list of + # available keys. elsif data.respond_to?(:[]) data = data[attr] + elsif data.respond_to?(attr.to_sym) + data = data.send(attr.to_sym) else data = begin data.send(attr.to_sym) |