    # File lib/chef/knife/core/generic_presenter.rb, line 147
            def extract_nested_value(data, nested_value_spec)
              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)
                elsif data.respond_to?(:[])
                  data = data[attr]
                else
                  data = begin
                    data.send(attr.to_sym)
                  rescue NoMethodError
                    nil
                  end
                end
              end
              ( !data.kind_of?(Array) && data.respond_to?(:to_hash) ) ? data.to_hash : data
            end