Thanks to visit codestin.com
Credit goes to gist.github.com

Skip to content

Instantly share code, notes, and snippets.

@rf-
Created August 11, 2011 22:35
Show Gist options
  • Save rf-/1140983 to your computer and use it in GitHub Desktop.
Save rf-/1140983 to your computer and use it in GitHub Desktop.

Revisions

  1. rf- revised this gist Aug 11, 2011. 1 changed file with 5 additions and 6 deletions.
    11 changes: 5 additions & 6 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -5,12 +5,11 @@ arr = [[{: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
    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
  2. @invalid-email-address Anonymous created this gist Aug 11, 2011.
    16 changes: 16 additions & 0 deletions gistfile1.txt
    Original 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