Returns a random key.
{:one => 1, :two => 2, :three => 3}.pick_key #=> :three
# File lib/more/facets/random.rb, line 258
258: def rand_key
259: keys.at(Random.number(keys.size))
260: end
Delete a random key-value pair, returning the key.
a = {:one => 1, :two => 2, :three => 3}
a.pick_key! #=> :two
a #=> {:one => 1, :three => 3}
# File lib/more/facets/random.rb, line 268
268: def rand_key!
269: k,v = rand_pair
270: delete(k)
271: return k
272: end
Returns a random key-value pair.
{:one => 1, :two => 2, :three => 3}.pick #=> [:one, 1]
# File lib/more/facets/random.rb, line 280
280: def rand_pair
281: k = rand_key
282: return k, fetch(k)
283: end
Deletes a random key-value pair and returns that pair.
a = {:one => 1, :two => 2, :three => 3}
a.rand_pair! #=> [:two, 2]
a #=> {:one => 1, :three => 3}
# File lib/more/facets/random.rb, line 291
291: def rand_pair!
292: k,v = rand_pair
293: delete( k )
294: return k,v
295: end
Returns a random hash value.
{:one => 1, :two => 2, :three => 3}.rand_value #=> 2
{:one => 1, :two => 2, :three => 3}.rand_value #=> 1
# File lib/more/facets/random.rb, line 304
304: def rand_value
305: fetch(rand_key)
306: end
Deletes a random key-value pair and returns the value.
a = {:one => 1, :two => 2, :three => 3}
a.at_rand! #=> 2
a #=> {:one => 1, :three => 3}
# File lib/more/facets/random.rb, line 314
314: def rand_value!
315: k,v = rand_pair
316: delete( k )
317: return v
318: end
Returns a copy of the hash with values arranged in new random order.
h = {:a=>1, :b=>2, :c=>3}
h.shuffle_hash #=> {:b=>2, :c=>1, :a>3}
# File lib/more/facets/random.rb, line 331
331: def shuffle
332: ::Hash.zipnew( keys.sort_by{Random.number}, values.sort_by{Random.number} )
333: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.