Below are a bunch of snippets to add to your IRB config for convenient scripting / personal use. But don't put this directly into any codebase, that will be a bad practice.
Set XOR
class Array
# Returns the union of `array` and Array `other` minus elements in both.
def ^(other)
(self | other) - (self & other)
end
end
Random
class Random
# Return a random boolean value.
def self.bool
[true, false].sample
end
# Returns a random string containing `size` characters from `characters`.
def self.string(size, characters = [*'a'..'z', *'A'..'Z', *'0'..'9'])
Array.new(size) { characters.sample }.join
end
# Return a random boolean value.
def bool
self.rand(2).zero?
end
# Returns a random string containing `size` characters from `characters`.
def string(size, characters = [*'a'..'z', *'A'..'Z', *'0'..'9'])
Array.new(size) { characters[self.rand(characters.size)] }.join
end
end
If you want to securely generate random strings, check out SecureRandom
.
Clear
# Clear the terminal.
def clear
print "\033c"
end
Null stream
$null = File.open(File::NULL, 'w')
<3