Module: Trustworthy::Random

Defined in:
lib/trustworthy/random.rb

Class Method Summary collapse

Class Method Details

._sourceObject



17
18
19
# File 'lib/trustworthy/random.rb', line 17

def self._source
  '/dev/random'
end

.bytes(size = 32) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/trustworthy/random.rb', line 9

def self.bytes(size = 32)
  flags = File::RDONLY
  flags |= File::NOCTTY if defined? File::NOCTTY
  File.open(_source, flags) do |file|
    file.read(size)
  end
end

.number(size = 32) ⇒ Object



3
4
5
6
7
# File 'lib/trustworthy/random.rb', line 3

def self.number(size = 32)
  raw_bytes = bytes(size)
  number = raw_bytes.unpack('H*').first.hex
  BigDecimal.new(number.to_s)
end