From 2d3af8dd3250b706b58af701381559dfa6c6520a Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Thu, 6 Oct 2011 22:24:01 -0400 Subject: [PATCH] more in 7.2 --- cookbook/007/02.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cookbook/007/02.rb b/cookbook/007/02.rb index 05b4f95..f77aeb4 100644 --- a/cookbook/007/02.rb +++ b/cookbook/007/02.rb @@ -1,3 +1,5 @@ +require 'pp' + def call_twice puts "Calling your block." ret1 = yield("very first") @@ -12,3 +14,17 @@ call_twice do |which_time| puts "I'm a code block, called for the #{which_time} time." which_time == "very first" ? 1 : 2 end + + +class Hash + def find_all + new_hash = Hash.new + each { |k,v| new_hash[k] = v if yield(k, v) } + new_hash + end +end + +squares = {0=>0, 1=>1, 2=>4, 3=>9} +print "squares = " +pp squares +(squares.find_all { |key, value| key > 1 }).each { |k,v| puts "#{k}: #{v}" }