summaryrefslogtreecommitdiff
path: root/chef-solr/lib
diff options
context:
space:
mode:
authorStephen Delano <stephen@opscode-stephen.local>2010-03-25 13:55:48 -0700
committerStephen Delano <stephen@opscode-stephen.local>2010-03-25 13:55:48 -0700
commita9c1c6d58e6dec77b752df2145825a2df52de50a (patch)
tree33bd299085f43e32c2338a4c980889754703291d /chef-solr/lib
parent220652661395b46fa13f9c5d05f9414690df543e (diff)
downloadchef-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.rb13
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)