diff options
author | Stephen Delano <stephen@opscode-stephen.local> | 2010-03-25 13:55:48 -0700 |
---|---|---|
committer | Stephen Delano <stephen@opscode-stephen.local> | 2010-03-25 13:55:48 -0700 |
commit | a9c1c6d58e6dec77b752df2145825a2df52de50a (patch) | |
tree | 33bd299085f43e32c2338a4c980889754703291d /chef-solr/lib | |
parent | 220652661395b46fa13f9c5d05f9414690df543e (diff) | |
download | chef-a9c1c6d58e6dec77b752df2145825a2df52de50a.tar.gz |
fixing indexing of nested arrays of hashes
Diffstat (limited to 'chef-solr/lib')
-rw-r--r-- | chef-solr/lib/chef/solr/index.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/chef-solr/lib/chef/solr/index.rb b/chef-solr/lib/chef/solr/index.rb index 0ebd553356..e590bd0223 100644 --- a/chef-solr/lib/chef/solr/index.rb +++ b/chef-solr/lib/chef/solr/index.rb @@ -112,7 +112,11 @@ class Chef if value.kind_of?(Array) fields[key] = Array.new value.each do |v| - fields[key] << v.to_s + if v.kind_of?(Hash) + flatten_and_expand(v, fields, key) + else + fields[key] << v.to_s + end end else fields[key] = value.to_s @@ -125,8 +129,11 @@ class Chef check_value(value) if value.kind_of?(Array) value.each do |v| - check_value(v) - fields[key] << v.to_s unless fields[key].include?(v.to_s) + if v.kind_of?(Hash) + flatten_and_expand(v, fields, key) + else + fields[key] << v.to_s unless fields[key].include?(v.to_s) + end end else fields[key] << value.to_s unless fields[key].include?(value.to_s) |