super_random 0.0.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03215da020dd9f2ca6c26028f80e3798c3fb422a
4
- data.tar.gz: 75510b4c103ae455aaa5dfe8dd43b218d728f391
3
+ metadata.gz: 6b911b7150cf576f96ffcfd6180dc7bffc25e1e3
4
+ data.tar.gz: 53a850f144d7908d762f3cf1dc1a77a7cae203ea
5
5
  SHA512:
6
- metadata.gz: 257de2141450a4c98a0cc9f152326ef0b968599b1f9b5c05bbf118ccf562880578a85f14b47208b2d8cedac95546ad24e9344213a201d37ca06ea4b168bc2782
7
- data.tar.gz: e2db17df29c0a2dfa45452f841f1da1357c2911a5a4daf2e79e1ac2bfb0868e1074d8e7cf9059ac42d2be086d521656fe703e31ae3d42e24c77e5913dc5c1451
6
+ metadata.gz: b7a29619d1473b51fe1d7d4a47c80facbe622b13f8df19da7ea458ef27a01e8a026adcf5d69d63fd7376a5d29118aa1d660e8cb98788e96ef522f2e95f77d2d3
7
+ data.tar.gz: aa56f4060ffa1366fcf20ce96a38adabebda122bf0d036e61207d76494a1277991fedfe604f87f6a400d1ccb1e786b47fc990fa67c984dec0d0c922da969b286
data/README.rdoc CHANGED
@@ -23,10 +23,10 @@ SuperRandom combines RealRand's three online real random services to create a mo
23
23
  super_random.rand #=> 0.16882225652425537
24
24
  super_random.rand(100) #=> 85
25
25
 
26
- # The "randomness" attribute gives the number of online services used.
26
+ # The "services" attribute gives the number of online services used.
27
27
  # It's possible for a service to fail.
28
28
  # Ultimately, SuperRandom uses SecureRandom as a failsafe.
29
- super_random.randomness #=> 3
29
+ super_random.services #=> 3
30
30
 
31
31
  == INSTALL:
32
32
 
@@ -1,22 +1,26 @@
1
1
  class SuperRandom
2
2
 
3
- def self.randbyte(r,n,s)
4
- return r.randbyte(n)
3
+ def self.randbyte(r,s)
4
+ return r.randbyte
5
5
  rescue Exception
6
6
  warn "RealRand's #{s} failed."
7
7
  return nil
8
8
  end
9
9
 
10
- attr_accessor :first_timeout, :second_timeout, :length, :nevermind, :randomness
10
+ attr_accessor :first_timeout, :second_timeout, :nevermind
11
+ attr_reader :randomness, :services
12
+
11
13
  def initialize
12
14
  @first_timeout = 3
13
15
  @second_timeout = 6
14
16
  @nevermind = true
15
- @randomness = 0
17
+ @randomness = 0.0
18
+ @services = 0
16
19
  end
17
20
 
18
21
  def bytes(n=32)
19
- @randomness = 0
22
+ @randomness = 0.0
23
+ @services = 0
20
24
 
21
25
  r1 = RealRand::RandomOrg.new
22
26
  r2 = RealRand::EntropyPool.new
@@ -24,9 +28,9 @@ class SuperRandom
24
28
 
25
29
  a1 = a2 = a3 = nil
26
30
 
27
- t1 = Thread.new{ a1 = SuperRandom.randbyte(r1,n,'RandomOrg') }
28
- t2 = Thread.new{ a2 = SuperRandom.randbyte(r2,n,'EntropyPool') }
29
- t3 = Thread.new{ a3 = SuperRandom.randbyte(r3,n,'FourmiLab') }
31
+ t1 = Thread.new{ a1 = SuperRandom.randbyte(r1,'RandomOrg')[0...n] }
32
+ t2 = Thread.new{ a2 = SuperRandom.randbyte(r2,'EntropyPool')[0...n] }
33
+ t3 = Thread.new{ a3 = SuperRandom.randbyte(r3,'FourmiLab')[0...n] }
30
34
 
31
35
  begin
32
36
  Timeout.timeout(@first_timeout) do
@@ -49,11 +53,12 @@ class SuperRandom
49
53
  end
50
54
 
51
55
  a = n.times.inject([]){|b,i|b.push(SecureRandom.random_number(256))}
52
-
53
56
  [a1, a2, a3].each do |b|
54
57
  if b
55
- @randomness += 1
56
- n.times{|i|a[i]=(a[i]+b[i])%256}
58
+ bl = b.length
59
+ @randomness += bl.to_f/n.to_f
60
+ @services += 1
61
+ n.times{|i|a[i]=(a[i]+b[i%bl])%256}
57
62
  end
58
63
  end
59
64
 
@@ -1,3 +1,3 @@
1
1
  class SuperRandom
2
- VERSION = '0.0.3'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super_random
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - carlosjhr64
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-16 00:00:00.000000000 Z
11
+ date: 2017-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: realrand
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '2.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.0.1
22
+ version: 2.0.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '2.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.0.1
32
+ version: 2.0.2
33
33
  description: |
34
34
  You can't get more random than random, but you can try really, really, really hard.
35
35
 
@@ -65,9 +65,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  - !ruby/object:Gem::Version
66
66
  version: '0'
67
67
  requirements:
68
- - 'ruby: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]'
68
+ - 'ruby: ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]'
69
69
  rubyforge_project:
70
- rubygems_version: 2.4.5.1
70
+ rubygems_version: 2.5.2
71
71
  signing_key:
72
72
  specification_version: 4
73
73
  summary: You can't get more random than random, but you can try really, really, really