Created
August 11, 2011 22:35
-
-
Save rf-/1140983 to your computer and use it in GitHub Desktop.
Revisions
-
rf- revised this gist
Aug 11, 2011 . 1 changed file with 5 additions and 6 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -5,12 +5,11 @@ arr = [[{:name=>"one", :enabled=>true}, {:name=>"two", :enabled=>true}] ] a = arr.flatten.inject(Hash.new(true)) do |result, element| result[element[:name]] &&= element[:enabled] result end.map do |key, value| {:name => key, :enabled => value} end p a -
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,16 @@ arr = [[{:name=>"one", :enabled=>true}, {:name=>"two", :enabled=>false}], [{:name=>"one", :enabled=>true}, {:name=>"two", :enabled=>true}] ] a = arr.inject do |result, element| # combine the arrays, and set :enabled to false if ANY of the array's # have :enabled set to false for that :name value # in this case I would want # [{:name=>"one", :enabled=>true}, {:name=>"two", :enabled=>false}] element end p a